$(this)....返回Window

时间:2016-02-23 09:03:49

标签: javascript jquery

出于某种原因,我不能在此代码中使用$(this):

if ($('a:contains("Abb")').length > 0) { 
    $(this).addClass('hello'); 
}

这是浏览器返回的内容:

enter image description here

我想在<a>标记中添加一个类,如果它包含内容&#34; Abb&#34;。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

您不需要检查长度。只需使用add class。

$('a:contains("Abb")').addClass('hello');

这会将课程hello添加到包含<a>的所有Abb

答案 1 :(得分:0)

您不在函数中(if / else语句不创建范围),因此 this指的是您提供的代码范围之外的内容。如果没有包装它的功能,它会引用窗口,在网络环境中

所以在这种情况下,你不能在这里使用this,你也不需要它。

if ($('a:contains("Abb")').length > 0) { 
    $('a:contains("Abb")').addClass('hello'); 
}

一些文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this

答案 2 :(得分:0)

$('a:contains("Abb")').each(function(){
  $(this).addClass('hello');
});