我怎么写......
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的新手,但我正在学习。我遇到的问题是找到写if
和else
条件的正确方法。我现在所做的并不能正常工作,但它有助于说明我的目标。
<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正常工作。
答案 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/
(关于使用此处阅读的keyup
和input
个事件 - jQuery 'input' event)