匹配输入值与跨度内的文本

时间:2017-05-08 21:12:21

标签: javascript jquery html user-interface input

我能够将输入值与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') } 

});

jsfiddle

2 个答案:

答案 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, "");
}