2016-05-09 9 views
-4

私はテキストの親ノードを取得したいと思っていました。それは簡単にはできないとわかっていて、手動のトラバースで行うべきです。私は次のことがうまくいかない理由を知りたい。

$(':not(:has(*))').find(':contains("mytext")'); 

結果でpタグを探すだけで簡単にできました。 私は .find("p");それが働いていないものをPタグ

私が知っているを選択する必要があり $(':not(:has(*))');は、いくつかのPタグを返します知っているが、私は理由を知りたいですか?

+5

論理的に実行します。それはpを見つける。それは意味をなさない。 – evolutionxbox

+0

基本的に私の理解は、タグ内のタグをチェックし、タグ内のテキストのチェックを含んでいます。 getAllTagsThatHasNoTagsInThemAndMayContainAPlainText()。GetTheOnesThatHave( "myText"); – Mohammad

答えて

1

子孫のない要素の子孫要素を検索しようとしています。それはうまくいかないでしょう。あなたがいない子孫とp要素を探しているなら、あなたはおそらく.filter()を使用することを意図し

、ない.find()

$(':not(:has(*))').filter('p') 

それとも、単に:not()pセレクタを添付することができます - そこは本当に何の理由ではありません別のセレクタをここで実行してください(セレクタ文字列が変数などから来ている場合を除いて):

$('p:not(:has(*))') 
関連する問題