我需要能够使用jQuery检查列表中的完全匹配。
我需要能够判断它是否存在完全匹配,而不是存在子字符串匹配。
if ($('.validValuesListMain ul li:contains('+val+')').length ) {
notImportedCount++;
} else {
importCount++;
$('.validValuesListMain ul').append('<span class="deleteValid" title="Delete Autofix">X</span><li class="validTag">'+val+'</li>');
}
流程
例如,当用户输入John Doe&#39;如果&#39; John Doe&#39;确实存在,然后错误。如果用户键入了John Doe&#39;在列表中有“John Do&#39;那么这没关系,因为它不完全匹配。
伪代码
If (John Doe) not exact match (John Do) {
alert('no duplicates found');
} else {
alert('duplicates found');
}
答案 0 :(得分:1)
jquery中没有选择器可以执行此操作,您需要使用例如filter()
或each()
来遍历元素,请查看以下示例:
var new_entry = "John Doe";
var duplicate = false;
$('.validValuesListMain ul li').filter(function() {
if( $(this).text()==new_entry )
duplicate = true;
})
if (duplicate){
alert('duplicates found');
} else {
alert('no duplicates found');
}
希望这有帮助。
$('body').on('input','input',function(){
var new_entry = $(this).val();
var duplicate = false;
$('.validValuesListMain ul li').filter(function() {
if( $(this).text()==new_entry )
duplicate = true;
})
if (duplicate){
alert('duplicates found');
} else {
alert('no duplicates found');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placehoslder="filter here"/>
<div class="validValuesListMain">
<ul>
<li>First</li>
<li>Second</li>
<li>Third</li>
</ul>
</div>