我想知道是否有更好的方法來添加/刪除複選框值到數組。可悲的是我不能使用ECMAScript 5 indexOf()
,因爲我需要支持IE8/7。優化Javascript方法來填充或清空數組
這裏是一個工作的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);
}
});
您可以將對象保留爲地圖並添加/刪除複選框名稱(或我猜測的值)。它會更快,但除非你有數百個複選框,否則它並沒有真正的區別。 – Pointy
MDN的代碼在這些瀏覽器中支持indexOf(https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf) – epascarello