这段代码:
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
选择器为此目的错误,我该如何纠正它以使其正常工作?
最佳答案
是的,contains
选择器不符合您的目的。顾名思义,它匹配包含指定文本作为子字符串的任何元素,而不仅仅是那些完全匹配的元素。
您可以尝试使用 .filter()
:
var matchingElements = $('span').filter(function(index) {
return $(this).text() === user_choice;
});
if(matchingElements.length === 0) {
...
}
关于jquery - 跨度 :contains() finds to many numbers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406612/