我似乎无法想象出这么简单的事情。我在IE 11中使用jQuery 1.4.2(虽然我尝试过更高版本)但是当值应为true时,我似乎无法检索已检查的值。
<input id="<%=ID%>" class="abcdeCheckBox" type="checkbox" value="<%=ID%>" />
var cachedCheckedValues = new Array();
$('.abcdeCheckBox').bind('click', function()
{
alert(this.checked);
var indexCheck = cachedCheckedValues.indexOf(this.value);
if(this.checked)
{
if(indexCheck == -1)
{
cachedCheckedValues.push(this.value);
}
}
else
{
cachedCheckedValues.splice(indexCheck, 1);
alert("removing: " + this.value);
}
});
这永远不会回归,我无法理解为什么。它永远不会将值添加到代码中的数组中。
答案 0 :(得分:0)
我在你的代码中注意到你在向它添加内容之前从未声明过该数组。 jsfiddle链接:https://jsfiddle.net/larryjoelane/t3f9xbu5/
//declare array
var cachedCheckedValues = [];
$('.abcdeCheckBox').bind('click', function()
{
alert(this.checked);
var indexCheck = cachedCheckedValues.indexOf(this.value);
if(this.checked)
{
if(indexCheck == -1)
{
cachedCheckedValues.push(this.value);
}
}
else
{
cachedCheckedValues.splice(indexCheck, 1);
alert("removing: " + this.value);
}
});