如何使用javascript函数取决于if else?

时间:2016-04-27 16:35:36

标签: javascript

我怎么写......

If a user is typing in input1 
    then do stuff in this table
else if 
    a user is typing in input2 then do stuff in the other table

我是javascript的新手,但我正在学习。我遇到的问题是找到写ifelse条件的正确方法。我现在所做的并不能正常工作,但它有助于说明我的目标。

<div class = "search">
  <input type="text" id = "inputTRUE" placeholder="Search Bought">
  <input type="text" id = "inputFALSE" placeholder="Search In Use">
</div>

的JavaScript

<script type="text/javascript">

    var lis = $(".cartInfosFALSE tr");
    var liss = $(".cartInfoTRUE tr");
    var list = $.makeArray(lis.map(function(k, v) {
                    return $(v).text().toLowerCase();
                }));
if (liss) {
    $("#inputTRUE").keyup(function() {
        var userInput = $(this).val();
        lis.each(function(index, value) {
            $(value).toggle(list[index].indexOf(userInput) >= 0);
        });
    });
} else {
    $("#inputFALSE").keyup(function() {
        var userInput = $(this).val();
        lis.each(function(index, value) {
            $(value).toggle(list[index].indexOf(userInput) >= 0);
        });
    });
}
</script>

编辑: - 取消if / else但现在出现新问题。

<script type="text/javascript">
    var lis = $(".cartInfosFALSE tr");
    var liss = $(".cartInfoTRUE tr");
    var list = $.makeArray(lis.map(function(k, v) {
                    return $(v).text().toLowerCase();
                }));

    $("#inputTRUE").keyup(function() {
        var userInput = $(this).val();
        liss.each(function(index, value) {
            $(value).toggle(list[index].indexOf(userInput) >= 0);
        });
    });

    $("#inputFALSE").keyup(function() {
        var userInput = $(this).val();
        lis.each(function(index, value) {
            $(value).toggle(list[index].indexOf(userInput) >= 0);
        });
    });

</script>

第一个keyup什么都不做,第二个keyup正常工作。

2 个答案:

答案 0 :(得分:1)

只需删除您的if/else声明即可。这样,事件侦听器将附加到每个输入并独立处理。

$("#inputTRUE").keyup(function() {
    // do stuff
});

$("#inputFALSE").keyup(function() {
    // do other stuff
});

jsfiddle示例。

答案 1 :(得分:1)

您不需要if / else,不需要使用事件监听器:

$('#inputTRUE').on('input', function () {
    // do something
});

$('#inputFALSE').on('input', function () {
    // do something else
});

这里的小例子:https://jsfiddle.net/yk0sseL7/

(关于使用此处阅读的keyupinput个事件 - jQuery 'input' event