いつも忘れてしまうのでメモしときます。
属性を指定する[attr=value]
<a href=hoge.html>hoge</a>
<a href=hage.html>hage</a>
console.log($("a[href='hoge.html']").text());
結果:hoge
テキストを指定する:contains(text)
<span>I am</span>
<span>pen</span>
console.log($("span:contains(pen)").text());
結果:pen
指定した要素を含んだ要素を取得:has(selector)
例:id=span2の子要素を含むdiv要素を隠します
<div>div1:<span id=s1>Span1</span></div>
<div>div2:<span id=s2>Span2</span></div>
$("div:has(#s2)").hide()
空の要素を取得:empty
要素の中が空の場合にマッチします。
$("div:empty").text("hoge");
空じゃない要素を取得:parent
$("div:parent").show();
要素によって空かどうかの判定が異なります。
<p></p>
、<span></span>
は空と判定されますが、<br><hr><img><input>
等は空ではないと判定されます。たぶん終了タグが必要ない要素は空ではないと判定されます。
サンプル
非表示の要素取得:hidden
$("button").click(function(){
$("div:hidden").show();
});
ボタンをクリックすると非表示属性が表示されます。
だだしopacity=0
にはマッチしません。
同様に:visible
を指定すると、表示されている要素を取得できます。
サンプル