次の要素が特定のタイプであるかどうかをテストするにはどうすればよいですか。たとえば、画像に続く次の要素も画像であるかどうかをテストしたいです。もしそうなら、その要素にクラスを追加したい
たとえば、この場合は true をトリガーし、最初の画像にクラスを追加します...
<p></p>
<img />
<img />
<p></p>
ただし、この場合、false がトリガーされ、何も起こりません...
<p></p>
<img />
<p></p>
次の要素が特定のタイプであるかどうかをテストするにはどうすればよいですか。たとえば、画像に続く次の要素も画像であるかどうかをテストしたいです。もしそうなら、その要素にクラスを追加したい
たとえば、この場合は true をトリガーし、最初の画像にクラスを追加します...
<p></p>
<img />
<img />
<p></p>
ただし、この場合、false がトリガーされ、何も起こりません...
<p></p>
<img />
<p></p>
.next()
[docs]と一緒に.filter()
[ docs]を使用できます:
$('img').filter(function() {
return $(this).next('img').length === 1;
}).addClass('someClass');
[docs] で次の隣接セレクタ [docs].prev()
を使用することもできます。
$('img + img').prev().addClass('someClass');
.is()
jQueryのメソッドを使用してそれを行うことができます。
$("#yourimage").next().is("img");
したがって、説明したようなクラスを追加するには:
var yourimage = $("#yourimage");
if (yourimage.next().is("img")){
yourimage.addClass("yourExtraClass");
}
var nextImage = $(this).next('img');
このnext
メソッドは、標準の jQuery セレクターを受け入れます。