此代码:
if( $('span:contains("'+user_choice+'")').length == 0 )
使用contain选择器查找包含用户输入的<span>
。用户输入user_choice
是一个数字,例如1
或23
或31
等。
但代码无法找到具体的<span>
,因为例如用户输入user_choice = 1
将同时找到1
和21
以及31
以及包含 1
的所有数字。我只需找到完全 <span>
的特定1
。
contain
选择器是否出于此目的而错误,如何更正它以使其正常工作?
答案 0 :(得分:3)
您可以使用filter
方法。
var len = $('span').filter(function(){
return $(this).text() == user_choice;
}).length;
答案 1 :(得分:3)
是的,contains
选择器出于您的目的是错误的。顾名思义,它匹配包含指定文本作为子字符串的任何元素,而不仅仅是那些完全匹配的元素。
您可以尝试使用.filter()
:
var matchingElements = $('span').filter(function(index) {
return $(this).text() === user_choice;
});
if(matchingElements.length === 0) {
...
}
答案 2 :(得分:1)
这样的事情怎么样?
$('span').each(function(){
if ($(this).html() == user_choice){
return true;
}
});
答案 3 :(得分:1)
尝试使用每个功能,它将比较“span”的所有标签
$('span').each(function(){
if ($(this).text() == "my_choosen_var"){
return true;
}
});