span:contains()查找许多数字

时间:2013-03-14 10:25:09

标签: jquery selector contain

此代码:

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

使用contain选择器查找包含用户输入的<span>。用户输入user_choice是一个数字,例如12331等。

但代码无法找到具体的<span>,因为例如用户输入user_choice = 1将同时找到121以及31以及包含 1的所有数字。我只需找到完全 <span>的特定1

contain选择器是否出于此目的而错误,如何更正它以使其正常工作?

4 个答案:

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