从下拉列表中取消选择时,Jquery从数组中删除值
当从多选下拉列表中取消选择值时,我尝试从数组中删除值。我可以使用push()添加值,但取消选择时删除值时遇到一些问题 以下是我所拥有的:从下拉列表中取消选择时,Jquery从数组中删除值,jquery,arrays,push,splice,Jquery,Arrays,Push,Splice,当从多选下拉列表中取消选择值时,我尝试从数组中删除值。我可以使用push()添加值,但取消选择时删除值时遇到一些问题 以下是我所拥有的: $('#dropdownSelect').change(function() { if ($(this).val()) { $.each($(this).val(), function(index, value) { if ($.inArray(value, myArray) == -1) {
$('#dropdownSelect').change(function() {
if ($(this).val()) {
$.each($(this).val(), function(index, value) {
if ($.inArray(value, myArray) == -1) {
myArray.push(value);
} else {
myArray.splice(index,1);
}
});
}
});
方法的第二个参数是要删除多少项。这里有0,它应该是1 @编辑 好的,你有一套 另一件事是,每次执行此方法时,您都会从
myArray
中删除当前在#dropdownSelect
中选择并出现在myArray
中的所有项目。您应该只删除那些存在于myArray
中而不存在于$(#dropdownSelect
).val()中的内容。
因此,您应该分两步进行:
myArray
中myArray
进行迭代,并删除中所选值中不存在的值#dropdownSelect
:更新的fiddle(删除最后一个对象):数组的第二个参数。splice()方法是删除多少项。这里有0,它应该是1 @编辑 好的,你有一套 另一件事是,每次执行此方法时,您都会从
myArray
中删除当前在#dropdownSelect
中选择并出现在myArray
中的所有项目。您应该只删除那些存在于myArray
中而不存在于$(#dropdownSelect
).val()中的内容。
因此,您应该分两步进行:
myArray
中myArray
进行迭代,并删除中所选值中不存在的值#dropdownSelect
: $('#dropdownSelect').change(function() {
if ($(this).val()) {
$.each($(this).val(), function(index, value) {
if ($.inArray(value, myArray) == -1) {
myArray.push(value);
} else {
myArray.splice($.inArray(value, myArray),1);
}
});
}
});
请试试这个
$('#dropdownSelect').change(function() {
if ($(this).val()) {
$.each($(this).val(), function(index, value) {
if ($.inArray(value, myArray) == -1) {
myArray.push(value);
} else {
myArray.splice($.inArray(value, myArray),1);
}
});
}
});
对不起,错别字,我有一套。非常感谢。这是有效的。唯一的问题是无法清除数组中剩余的最后一个值。如果我选择另一个值,它将替换最后一个值,即索引0处的值。当我查看您的代码时,我认为这是您的意图,让我来修复小提琴…对不起,输入错误,我有一套。非常感谢。这是有效的。唯一的问题是无法清除数组中剩余的最后一个值。如果我选择另一个值,它将替换最后一个值,即索引0处的值。当我查看您的代码时,我认为这是您的意图,让我修复小提琴。。。