在jQuery中,我想写一个简单的函数来显示一个警报,如果在选择框内选择的值之和的差异> 0,对于同一类的每个div。
这是我的html代码:
$(".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!");
}
});<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>
我的代码不工作了。我哪里错了?有什么提示吗?
发布于 2016-11-22 21:15:30
var difference = positive - negative;
if (differenze > 0 ) {
alert("Show something!");
}你拼写成differenze而不是difference。
发布于 2016-11-22 21:29:43
$(".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>
发布于 2016-11-22 21:35:34
感谢大家的帮助!主要的问题是,我是个愚蠢的.
negative = negative + $(this).val();表示使用$(this).val()追加负值变量。不是指做一个代数和。
非常难看的解决方案:
negative = negative - -$(this).val();或者更好:
negative = negative + parseInt($(this).val());现在它起作用了!
https://stackoverflow.com/questions/40742751
复制相似问题