我能够将输入值与span匹配;但是,我只是检索我要比较的列表中的第一个跨度。我需要比较两个列表项。如果输入等于任一列表项,那么它应该为真。我只得到第一个值的匹配。
HTML
<input id="search" type="text" class="input">
<ul> <li id="111" class="active" style="display: list-item;"><a href="" onclick="return false;"><span style="display:none">111</span><span style="display: inline;">1-1-1</span></a></li>
<li id="222" style="display: list-item;"><a href="" onclick="return false;"><span style="display:none">222</span><span style="display: inline;">2-2-2</span></a></li>
</ul>
JS
$('#search').on('input',function(){
if( $('#search').val() != $('ul li a span:eq(0)').text()){
return console.log('false')
}
else if( $('#search').val() == $('ul li a span:eq(0)').text()) { return console.log ('true') }
});
答案 0 :(得分:2)
我认为当你在元素列表上调用<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
时,它将返回第一个元素的文本。因此,您需要遍历您感兴趣的范围并检查每个范围。
以下是一个例子:
.text()
答案 1 :(得分:0)
或者,您可以使用正则表达式修剪所有HTML标记,然后搜索内容。
function noTags(body) {
var regex = /(<([^>]+)>)/ig;
return body.replace(regex, "");
}