当我运行此代码时,onClick 下的 if 语句在 view.checked == true 时计算,但 else 在 view.checked == false 时不计算。该警报显示 view.checked 似乎工作正常。不知道发生了什么事。我正在使用这两个插件:
https://datatables.net/使用 fnFilter 插件
和
http://wenzhixin.net.cn/p/multiple-select
作为旁注,还试图找出为什么我的 .join() 方法添加空格。
var checked = [];
var checkedreg = '';
$(document).ready(function() {
rtable = $('#ropes').dataTable( {
"ajax": "data/ropes.txt",
"dom": 'C<"clear">lfrtip',
"columns": [
{ "data": "brand" },
{ "data": "model" },
{ "data": "length" },
{ "data": "dia" },
{ "data": "price" },
{ "data": "drytreat" },
{ "data": "midmark" },
{ "data": "bipat" },
{ "data": "falls" },
],
});
$('select').multipleSelect({
onClick: function(view) {
checkedreg = '';
alert(view.checked);
if (view.checked) { //if checkbox is checked
checked.push(view.label); //add value of checkbox to "checked" array (ex. "Petzl")
}
else {
checked.splice(array.indexOf(view.label), 1); //if checkbox is not checked, remove value from array
alert(checked); //test
}
checkedreg = checked.join("|"); //create regex of values ("Petzl| Mammut| Edelweiss)"
checkedreg = checkedreg.replace(/\s+/g, ''); //for some reason it adds spaces so i have to remove them
alert(checkedreg); //test
alert(checked); //test
rtable.fnFilter(checkedreg, 0, true); //filters a column based on a regex and column index
}
})
});
最佳答案
将 checked.splice(array.indexOf(view.label), 1);
替换为 checked.splice(checked.indexOf(view.label), 1);
并尝试
关于JavaScript If 语句有效,但 Else 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23552218/