jQuery .closest找不到正确的p元素

时间:2016-01-04 06:00:47

标签: javascript jquery

我正在尝试确定为什么我的某些代码无效,即使它看起来很直接。

如下所示,我确定img标记包含类size-full,然后意图找到最接近的p元素(它是包含{{1}元素的元素1}} element)b并添加类img。为什么这不起作用?

CM-blog-image

HTML

if($('.entry-content p img').hasClass('size-full')) {

        $(this).closest('p').addClass('CM-blog-image');
}

5 个答案:

答案 0 :(得分:2)

您可以这样使用:

$('.entry-content img.size-full').parent().addClass('CM-blog-image');
               //or you may use   ^^ closest('p')

答案 1 :(得分:2)

您可以使用简单的遍历方法来实现它。无需使用.each()

$('.entry-content p img.size-full') //Find image with the class
     .closest('p') //Traverse up to paragraph element
     .addClass('CM-blog-image');  //Add the required class

答案 2 :(得分:1)

我假设您要为找到的每个元素添加类。

$('.entry-content p img').each(function(){
    if($(this).hasClass('size-full'))
        $(this).closest('p').addClass('CM-blog-image');
});

答案 3 :(得分:0)

如果您在entry-content类的下一个附近有p tag和image标签。使用如下。它应该工作。

if($('.entry-content > p > img').hasClass('size-full')) {

        $(this).closest('p').addClass('CM-blog-image');
}

答案 4 :(得分:0)

//select img with class size-full
 var elm = $('.entry-content p img.size-full');

  // add CM-blog-image to closest parent p
 elm.closest('p').addClass('CM-blog-image');