首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >嵌套div内select选项的jQuery计数值

嵌套div内select选项的jQuery计数值
EN

Stack Overflow用户
提问于 2016-11-22 21:10:04
回答 3查看 53关注 0票数 0

在jQuery中,我想写一个简单的函数来显示一个警报,如果在选择框内选择的值之和的差异> 0,对于同一类的每个div。

这是我的html代码:

代码语言:javascript
运行
复制
    $(".Y").each(function( index ) {
    	var positive = $(this).children('.Z').val();
    	var negative = 0;
    
    	$(this).children('.T').each(function( index ) {
    		negative = negative + $(this).val();
    	});
    	
    	var difference = positive - negative;
    
    	if (difference > 0 ) {
    		alert("Show something!");
    	}
    });
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="X">
	    <div class="Y">
		    <select class="Z">
			    <option value="0">0</option>
			    <option value="1">1</option>
		    </select>
		    <select class="T">
			    <option value="0">0</option>
			    <option value="1">1</option>
		    </select>
		    <select class="T">
			    <option value="0">0</option>
			    <option value="1">1</option>
		    </select>
     	<div>

	    <div class="Y">
		    <select class="Z">
			    <option value="0">0</option>
			    <option value="1">1</option>
	     	</select>
		    <select class="T">
		    	<option value="0">0</option>
		    	<option value="1">1</option>
		    </select>
		    <select class="T">
		    	<option value="0">0</option>
			    <option value="1">1</option>
		   </select>
        <div>
    <div>

我的代码不工作了。我哪里错了?有什么提示吗?

EN

回答 3

Stack Overflow用户

发布于 2016-11-22 21:15:30

代码语言:javascript
运行
复制
var difference = positive - negative;

if (differenze > 0 ) {
    alert("Show something!");
}

你拼写成differenze而不是difference

票数 0
EN

Stack Overflow用户

发布于 2016-11-22 21:29:43

代码语言:javascript
运行
复制
$(".Z, .T").on("change", function( index ) {
      var positive = $(this).parent().children('.Z').val();
      var negative = 0;

      $(this).parent().children('.T').each(function( index ) {
          negative = negative + $(this).val();
      });

      var difference = positive - negative;

      if (difference > 0 ) {
          alert("Show something!");
      }
  });
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="X">
    <div class="Y">
        <select class="Z">
            <option value="0">0</option>
            <option value="1">1</option>
        </select>
        <select class="T">
            <option value="0">0</option>
            <option value="1">1</option>
        </select>
        <select class="T">
            <option value="0">0</option>
            <option value="1">1</option>
        </select>
    <div>

    <div class="Y">
        <select class="Z">
            <option >0</option>
            <option >1</option>
        </select>
        <select class="T">
            <option >0</option>
            <option >1</option>
        </select>
        <select class="T">
            <option >0</option>
            <option >1</option>
       </select>
    <div>
<div>

票数 0
EN

Stack Overflow用户

发布于 2016-11-22 21:35:34

感谢大家的帮助!主要的问题是,我是个愚蠢的.

代码语言:javascript
运行
复制
    negative = negative + $(this).val();

表示使用$(this).val()追加负值变量。不是指做一个代数和。

非常难看的解决方案:

代码语言:javascript
运行
复制
    negative = negative - -$(this).val();

或者更好:

代码语言:javascript
运行
复制
    negative = negative + parseInt($(this).val());

现在它起作用了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40742751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档