【发布时间】:2023-03-28 05:30:01
【问题描述】:
html:
<div class="searchChkBoxDiv"><input id="searchchk_input"></div>
<div class="searchElemDiv"></div>
js:
var checkBoxVals = ["sandeep", "suresh", "rajesh", "ramesh", "pad"];
for(var i = 0; i<checkBoxVals.length; i++){
$('.searchElemDiv').append('<div id='+checkBoxVals[i]+'><input type="checkbox"><span>'+checkBoxVals[i]+'</span></div>');
}
我有上面的代码,我想过滤java脚本添加的searchElemDiv中的元素。
我尝试如下,但无法捕获数组中过滤器过滤的元素。
$('#searchchk_input').keyup(function(){
var val = $(this).val();
$('.searchElemDiv').empty();
var opt = checkBoxVals.filter(function(idx, el) {
return val === '' || el.indexOf(val) == 0;
});
for(var i=0; i<opt.length; i++){
$('.searchElemDiv').append('<div id='+opt[i]+'><input type="checkbox"><span>'+opt[i]+'</span></div>');
}
});
当我给出第一个键时,它会从 searchElemDiv div 中删除所有元素,当再次从输入框中删除整个输入时,searchElemDiv 会在页面加载时填充所有元素,但在单个字符之间也不起作用。
你能帮我解决一下吗?
【问题讨论】:
-
checkBoxVals不是jQuery-object -
stackoverflow.com/a/14274386/3986045 我按照上面的答案在选择框中实现了搜索。并尝试实现它以在 div 元素中进行搜索。
-
感谢大家帮助我。我将上面的代码更改为 var opt = checkBoxVals.filter(function(element, index) { return val === '' || element.indexOf(val) == 0; });现在它工作正常。谢谢@Quentin Roger。
标签: javascript jquery html