2

我如何测试下一个元素是否是某种类型 - 例如,我想测试图像后面的下一个元素是否也是图像。如果是这样,那么我想为该元素添加一个类

例如,如果是这种情况,那么它将触发 true 并向第一张图像添加一个类......

<p></p>
<img />
<img />
<p></p>

但是,在这种情况下,它会触发错误,并且不会发生任何事情......

<p></p>
<img />
<p></p>
4

3 回答 3

7

您可以将.next() [docs].filter() [docs ] 一起使用:

$('img').filter(function() {
    return $(this).next('img').length === 1;
}).addClass('someClass');

您还可以将下一个相邻选择器 [docs].prev() [docs]一起使用:

$('img + img').prev().addClass('someClass');
于 2012-02-09T14:04:43.457 回答
4

您可以使用.is()jQuery 的方法来做到这一点:

$("#yourimage").next().is("img");

所以要添加一个像你描述的类:

var yourimage = $("#yourimage");

if (yourimage.next().is("img")){
   yourimage.addClass("yourExtraClass");
}
于 2012-02-09T14:03:31.317 回答
0
var nextImage = $(this).next('img');

next方法接受标准的 jQuery 选择器。

于 2012-02-09T14:03:04.530 回答