1

这段代码:

if( $('span:contains("'+user_choice+'")').length == 0 )

使用包含选择器查找<span>包含用户输入的 。用户输入user_choice是一个数字,比如1or 23or31等​​。

但是代码无法找到具体的<span>,因为例如用户输入user_choice = 1会同时找到1and21和and包含31的所有数字。我只需要找到确切的具体内容。 1<span> 1

为此目的选择器是否contain错误,我该如何纠正它以使其工作?

4

4 回答 4

3

你可以使用filter方法。

var len = $('span').filter(function(){
     return $(this).text() == user_choice;
}).length;
于 2013-03-14T10:30:01.797 回答
3

是的,contains选择器不符合您的目的。顾名思义,它匹配包含指定文本作为子字符串的任何元素,而不仅仅是那些完全匹配的元素。

您可以尝试使用.filter()

var matchingElements = $('span').filter(function(index) {
    return $(this).text() === user_choice;
});
if(matchingElements.length === 0) {
    ...
}
于 2013-03-14T10:30:09.987 回答
1

这样的事情怎么样?

$('span').each(function(){
  if ($(this).html() == user_choice){
   return true;
  }
 });
于 2013-03-14T10:29:24.557 回答
1

尝试每个功能,它将比较“span”的所有标签

$('span').each(function(){
  if ($(this).text() == "my_choosen_var"){
    return true;
  }
});
于 2013-03-14T10:31:00.297 回答