嵌套div中select选项的jQuery计数值

时间:2016-11-22 13:10:04

标签: jquery html

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

这是我的HTML代码:



set.seed

    $(".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!");
    	}
    });




我的代码无效。哪里错了?一些提示?

3 个答案:

答案 0 :(得分:0)

var difference = positive - negative;

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

你拼写 differenze 而不是差异

答案 1 :(得分:0)

$(".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!");
      }
  });
<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>

答案 2 :(得分:0)

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

    negative = negative + $(this).val();

表示使用$(this).val()附加负变量。并不意味着做一个代数和。

非常难看的解决方案:

    negative = negative - -$(this).val();

或者更好:

    negative = negative + parseInt($(this).val());

现在有效!