0

dividを取得したい。divで、タグにtextToSearchが含まれている場合、それを非表示にします。これを行う方法?

また、ページをロードする前にこのスクリプトを実行したいと思います。ページのパスを見たくない。

これが私のコードです:

<div class="main">
  <div class="content">
     <div class="whitebox">
            <div class="content">
                <div id="t512848" class="entry0">
                     <a>test</a>
                </div>
                <div id="t512849" class="entry0">
                     <a>galatasaray!</a>
                </div>
            </div>
     </div>
  </div>
</div>

ユーザースクリプト..。

function main($) {
    textToSearch = "test";
    $(".content").children().each(function(n, i) {
    var id = this.id;
    $('div.entry0').each(function(index){
        var that = this;
        $(this).find("a:contains('"+textToSearch+"')").each(function(index) {               
            //$(#id).hide();
            console.log(this);
        });
    }); 
   });
}

addJQuery(main);
4

3 に答える 3

3

メソッドを使用する必要はありません。メソッドを使用してdivを非表示にeachすることができます。has

一致した要素のセットを、セレクターまたはDOM要素に一致する子孫を持つ要素に減らします。

$('.entry0').has("a:contains('"+textToSearch+"')").hide()
于 2012-11-19T20:04:14.037 に答える
1

これを試して:

function main($) {
    textToSearch = "test";

    $(".content").children().each(function(n, i) {
        var id = this.id;
        $('div.entry0').each(function(index){
            var that = this;
            $(this).find("a:contains('"+textToSearch+"')").each(function(index, element) {               
                $(element).hide();
            });
        });
    });
于 2012-11-19T20:04:11.647 に答える
1

この例では、テキストが一致するすべてのアンカータグの親divのIDを取得します。jsfiddleの例へのリンクも含めました。

HTML

<div id="d1" class="entry0">
    <a>test</a>
</div>
<div id="d2" class="entry0">
    <a>test1</a>
</div>
<div id="d3" class="entry0">
    <a>test</a>
</div>

JS

textToSearch = "test";

$(".entry0").each(function(index) {
    $(this).find("a").each(function(index) {
        if ($(this).text() == textToSearch) {
            alert($(this).parent().prop("id"));
        }
    });
});​

jsfiddle

編集

ああ、私は持っていることを知りませんでした。他の答えをチェックしてください、そして、あなたは勝者を持っています。:)

于 2012-11-19T20:05:07.310 に答える