)ver1.4〜機能jQueryオブジェクトで指定した要素のうちセレクタで指定した子孫要素を持つ要素を選択します。引数にはDOM要素を設定することも可能です。子孫要素を選択するのではなく、子孫要素を持つ要素が選択されることに注意してください。引数にセレクタを設定サンプル(has/01.html)を開いてdiv要素が4つあり、そのうち2つは子要素としてa要素を持っていることを確認してください。href="http://www.google.co.jp/">googleへのリンク</a></div>jQueryは以下の様に記述され、buttonをクリックするとdiv要素のうちa要素を子要素として持つ要素を選択します。cssメソッドを利用して背景を赤くしています。$("button").click(function(){$("div").has("a").css("background-color","#FCC");})結果として、buttonをクリックするとa要素を子要素として持つ2つのdiv要素が選択され背景色が赤くなります。a要素が選択されるのではなく、div要素が選択されることに注意してください。対象は子孫要素ですサンプルhas/01.htmlではa要素はdivの子要素でした。hasメソッドは子要素だけでなく子孫要素も選択対象になります。サンプル(has/02.html)を開いて上から2番目のdiv内にあるa要素がb要素に内包されていることを確認してください。a要素はdiv要素の孫要素となり子要素ではなくなっています。href="http://www.google.co.jp/">googleへのリンク</a></div>jQueryには変更はありません。buttonをクリックするとb要素を追加したdiv要素も選択されることから、hasメソッドの選択対象が子孫要素であることが確認できます。引数にDOM要素を利用あまり利用する機会は無いかもしれませんが、hasメソッドの引数にはDOM要素を設定することもできます。サンプル(has/03.html)を開いてhtmlの構成がサンプルhas/01.htmlと同じ事を確認してください。jQueryは以下の様に変更されhasメソッドの引数にmyObjが設定されています。myObjは1行目で作成された0番目のa要素にマッチしたDOM要素となっています。document.getElementsByTagName("a")[0];$("button").click(function(){$("div").has(myObj).css("background-color","#FCC");})結果として、buttonをクリックすると最初のa要素を持つdiv要素だけが選択されます。メモセレクタにも似たものがありますセレクタの:has()を利用すればhasメソッドと同じようなことが可能です。サンプル(has/test01.html)を開いてhtmlの構成がサンプルhas/01.htmlと同じ事を確認してください。セレクタの:has()を利用したものに置き換えただけです。buttonをクリックするとサンプルhas/01.htmlと同じ結果になることを確認して下さい。$("button").click(function(){$("div:has('a')").css("background-color","#FCC");})しかしトラバースのhasメソッドは引数にDOM要素を利用することができるので、ほんの少しだけ便利かもしれません。