is()
is()はjQueryオブジェクトに指定したオブジェクトが含まれるかどうか確認できるメソッドです。
<ul>
<li class="aaa">aaa</li>
<li class="bbb">bbb</li>
</ul>
このようなHTMLに対して次のように指定してセレクタで指定したDOMオブジェクトが存在するか確認できます。
$("li").is(".aaa");//true
$("li").is(".ccc");//false
jQuery1.6からセレクタだけではなくjQueryオブジェクトやDomオブジェクトとも比較ができるようになりました。
console.log($("li").is($(".aaa")));//true
console.log($("li").is($(".ccc")));//false
console.log($("li").is(document.getElementsByClassName("aaa")[0]));//true
console.log($("li").is(document.getElementsByClassName("ccc")[0]));//false
また、is()にコールバック関数が指定できるようになりました。セレクタで指定した要素を精査しコールバック関数がtrueを1度でも返せばis()はtrueを返します。コールバック関数がtrueを1度も返さない場合はis()はfalseを返します。
console.log($("li").is(function(){
return $(this).hasClass("aaa");
}));//true
console.log($("li").is(function(){
return $(this).hasClass("ccc");
}));//false
jQuery 1.6.0での追加/変更jQuery 1.6.0からDOMオブジェクトやjQueryオブジェクトの比較やコールバック関数による比較が追加されました。
jQuery 1.7.0での追加/変更jQuery 1.7.0では$("li:first").is("li:last")といった並び順を制御するセレクタを使った比較が正しい結果を返さないバグが修正されました。
参考URL
登録日 : 2012年12月25日 最終更新日 : 2012年12月25日