が含まれている要素だけを選択:jQueryの素敵な:contains
selectorを使用してだから私はこのような何か持っている直接テキスト
<div class="main">
<div class="useless">
text I don't want.
</div>
<div class="useless">
text I don't want.
</div>
<div class="narrow">
text I'm searching for
</div>
<div class="useless">
text I don't want.
</div>
<div class="useless">
text I don't want.
</div>
</div>
を、私はキーワードを検索することができますが、それは親と子の両方を返します。
私が検索している単語が直接含まれている要素のみを返すことができます。
これは以前の試みとしてthis linkを示唆していましたが、すべてのドミノノードをクロールしており、不明瞭なコードがたくさんあるため、非常に厄介なようです。
$("div:contains('searching')").filter(function() {
return (
$(this).clone() //clone the element
.children() //select all the children
.remove() //remove all the children
.end() //again go back to selected element
.filter(":contains('searching')").length > 0)
}).css('border', 'solid 1px black');
Iを:
これは、あなたが参照した質問の欺瞞としてフラグを立てます。あなたが与えた理由のために、あなたがそこでの答えに満足していないことを感謝しながら、それは同じ質問であり、他の質問に与えられていない特定の要件を与えていません。あなたがそうすることができれば、適切な行動措置はおそらくその質問に恩恵を与えることでしょう。私はまだこれについて興味があり、それを見ている。 –
* "すべてのドミノノードをクロールしているので、非常に厄介なようです" *。それはどんな場合でもあなたがしなければならないことです。また、 '$( '*')'で一度にすべてのノードを選択してから繰り返し実行することもできますが、いずれの場合もすべてのノードを走査しなければなりません。 –
おそらく、[jQuery XPath plugin](https://github.com/ilinsky/jquery-xpath)のような高度なセレクタが必要です。もしあなたがxpathを使うと決めたら、おそらく[この回答](http://stackoverflow.com/a/2994336/771578)もあなたを助けるでしょう。 –