我有一些选择框如下:
<select id="my_box1" rel="cal_10">
<option value="A"></option>
</select>
<select id="my_box2" rel="cal_10.50">
<option value="A"></option>
</select>
....
<select id="my_boxn">
<option value="B"></option>
</select>
在更改时,我只想在选择框具有相同的选项值时添加相关值(即10和10.50)。
例如:如果第一个和第二个选择框的选项值为A,那么我想添加它。
如何使用jQuery执行此操作?
答案 0 :(得分:1)
好吧,我真的不能确切地说出你在问什么,所以我只是想猜。
我猜测当select
元素收到change
事件时,我们应该找到所选值相同的所有其他选择,并对{{1}的数字部分求和} attribute。
如果是这样,你可以这样做:
rel
如果您使用的是早于var boxes = $('select[id^="my_box"]');
boxes.on('change', function() {
var n = 0,
val = this.value;
boxes.each(function() {
if( this.value === val ) {
n += +$(this).attr('rel').replace('cal_','');
}
});
alert( n );
});
的jQuery版本,请使用1.7
代替boxes.bind
。
答案 1 :(得分:0)
这样的事情,我相信:
$(function() {
$('select#my_box1, select#my_box2').bind('change', function() {
if ($('select#my_box1').val() == $('select#my_box2').val())
$('select#my_box2').append('<option value="10">10</option><option value="10.50">10.50</option>');
else $('select#my_box2').find('option[value="10"], option[value="10.50"]').remove();
});
});
答案 2 :(得分:0)
我试过下面的代码,
$('select').change(function(){
var totalWeight = 0;
var post_array = [];
var actual_val = value;
//alert(actual_val);
var x=0;
$("select").each(function(index, selectedObj) {
current = $(this).val();
var combined = $(this).attr('rel');
if(combined!=undefined)
{
combined = combined.split("_");
var is_combined = combined[0];
var combined_pid = combined[1];
if(actual_val == current && is_combined == "cal"){
post_array[x++] = combined_pid ;
totalWeight+=parseFloat(combined_pid);
}
}
});
alert(totalWeight);
});
我将在totalWeight