简体   繁体   English

JavaScript If语句有效,但Else没有

[英]JavaScript If statement works, but Else doesn't

When I run this code, the if statement under onClick evaluates when view.checked == true, but the else does not evaluate when view.checked == false. 当我运行此代码时,onClick下的if语句在view.checked == true时评估,但是当view.checked == false时else不评估。 The alert shows that view.checked seems to be working properly. 警报显示view.checked似乎正常工作。 No idea what's going on. 不知道发生了什么。 I'm using these two plugins: 我正在使用这两个插件:

https://datatables.net/ with fnFilter plugin https://datatables.net/与fnFilter插件

and

http://wenzhixin.net.cn/p/multiple-select http://wenzhixin.net.cn/p/multiple-select

As a side note, also trying to figure out why my .join() method adds spaces. 作为旁注,还试图找出为什么我的.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
        }
    })
});

Replace checked.splice(array.indexOf(view.label), 1); 替换checked.splice(array.indexOf(view.label), 1); with checked.splice(checked.indexOf(view.label), 1); with checked.splice(checked.indexOf(view.label), 1); and try 并尝试

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM