【发布时间】:2013-01-11 22:58:57
【问题描述】:
我想知道是否有更好的方法将复选框值添加/删除到数组中。遗憾的是我不能使用 ECMAScript 5 indexOf(),因为我需要支持 IE8/7。
这是一个有效的 jsfiddle 示例:http://jsfiddle.net/puyQr/
这个方法的作用是:
/**
* If a user clicks onto the checkbox, the value of the value attribute is
* only added to the array when the value not yet exists. However, if
* the value already exists, the value is removed.
*/
var values = [];
jQuery(':checkbox').on('click', function(){
var index = jQuery.inArray(this.value, values);
if(index === -1) {
values.push(this.value);
} else {
values.splice(index, 1);
}
});
【问题讨论】:
-
您可以将对象保留为地图并添加/删除复选框名称(或我猜的值)。它会更快,但除非你有数百个复选框,否则它不会有真正的区别。
-
MDN 在这些浏览器中有support indexOf 的代码
标签: javascript jquery arrays optimization