如何从类元素中获取值?

时间:2012-11-28 17:46:57

标签: jquery

我正在尝试获取所选的课文。

我有

for (var i=0; i<$('.toys').length; i++){

       if($('.toys')[i].text()=='lego'){
         alert('got it');
         return false;
      }
    }

HTML

<div class='toys'> toya  </div>
<div class='toys'> lego  </div>
<div class='toys'> toyb  </div>
<div class='toys'> toyc  </div>

我收到错误消息说对象#没有方法'text'

我该如何解决这个问题?谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

首先,您应该缓存结果,以避免重复查询DOM。

代码的问题在于使用[]返回原始DOM元素(不是jquery对象),而DOM元素没有.text()方法。您应该使用.eq(i)代替[i]

正如其他人所说,更合适的方法是使用.each()或者使用.filter()

var wanted = $(".toys").filter(function() {
    return $.trim($(this).text()) === 'lego';
});
if (wanted.length){
  alert('got it'); // or do whatever you want with the wanted element..
}

答案 1 :(得分:1)

您可以(并且应该)使用jQuery $.each()循环来迭代集合,如下所示:

$(".toys").each(function() {
    if($(this).text() == "lego") {
        alert("got it!");
        return false;
    }
});