divがクリックされた場合に、以下のルールでメッセージを表示。
要素が最初の子要素である → “It's the first div”
blueもしくはredというクラスを持っている → “It's a blue or red div”
“Peter”という文字列を含む → “It's Peter!”
上記以外 → “It's nothing special”
Traversing/API/jQuery
is(expr)
要素集合のうち、1つでも条件式に合致する要素があればtrueを返します。
もし何の要素も一致しないか、条件式が不正であればfalseが返されます。
jQuery 1.3からは、引数に全てのセレクター書式が指定できるようになりました。例えば"+"や"~"、">"のような以前は常にtrueを返していた階層構造を示す書式も、きちんと評価されます。
内部的にfilterを使っているので、条件式のルールは同じになります。
もし何の要素も一致しないか、条件式が不正であればfalseが返されます。
jQuery 1.3からは、引数に全てのセレクター書式が指定できるようになりました。例えば"+"や"~"、">"のような以前は常にtrueを返していた階層構造を示す書式も、きちんと評価されます。
内部的にfilterを使っているので、条件式のルールは同じになります。
サンプル
サンプル1
<div></div> <div class="blue"></div> <div></div> <div class="red"></div> <div><br/><span>Peter</span></div> <div class="blue"></div> <p> </p>
$("div").one('click', function () { if ($(this).is(":first-child")) { $("p").text("It's the first div."); } else if ($(this).is(".blue,.red")) { $("p").text("It's a blue or red div."); } else if ($(this).is(":contains('Peter')")) { $("p").text("It's Peter!"); } else { $("p").html("It's nothing <em>special</em>."); } $("p").hide().slideDown("slow"); $(this).css({"border-style": "inset", cursor:"default"}); });
[全コードを表示]
[実行結果を単体で表示]