我知道如何在JQuery中获取所选元素的列表:
var foo = [];
$("#ddis").change(function() {
$('#ddis :selected').each(function(i, selected){
foo[i] = $(selected).text();
console.log(i+"-"+$(selected).text());
});
});
有:
<select id="ddis" name="numbers" multiple="multiple" size="5">
<option value="01908298600" selected="selected">01908298600</option><option value="01908298601" selected="selected">01908298601</option><option value="02070079003">02070079003</option><option value="02070079008" selected="selected">02070079008</option><option value="02077239151">02077239151</option><option value="02077239157">02077239157</option>
</select>
但实际上我需要知道每次有人点击元素时选择或取消选择的内容。喜欢:“数字01908298600被取消选择”,但现在我只是迭代所有选择而不是得到不同的东西。
答案 0 :(得分:1)
您可以通过存储选择的先前值和当前值来使用此类逻辑。
var current = false;
$("#ddis").change(function() {
if(current)
console.log(current+" got deselected");
var _val = $(this).val();
console.log(_val+" got selected");
current = _val;
});
答案 1 :(得分:1)
var foo = [];
$("#ddis").change(function() {
var newFoo = [];
$('#ddis :selected').each(function(i, selected){
newFoo[i] = $(selected).text();
if( foo.indexOf( $(selected).text() ) == -1 ) {
alert( "Selected " +$(selected).text() );
}
});
foo = newFoo;
});