4

私はこの文書構造を持っています

<div id="log">
<div>ABC</div>
<br/>
<div>DEF</div>
<br/>
...
</div>

where...は、任意の数の div と br のペアを表します。

次に、id (この場合は "log") と文字列 ("DEF" など) を受け取り、"log" div にテキストが "DEF "。JQuery が弱いのですが、誰か助けてくれませんか?

4

5 に答える 5

4
if ( $('#log div:contains("DEF")').length ) {
   // exists
}
于 2012-08-31T16:49:30.240 に答える
3
$("#log").children("div").each(function(){
   if( $(this).text() == "DEF")
     //do something  
});
于 2012-08-31T16:55:32.377 に答える
1

:containsセレクターを使用して、IDからセレクター文字列を作成できます。

function exists(id, content) {
  return $('#' + id + ' div:contains("' + content + '")').length > 0;
}

ただし、これは完全には一致しません。正確にEARを含むdivが必要で、BEARSを含むdivがある場合は、誤検知が発生します。完全に一致させるには、次のfilter方法を使用して要素をフィルタリングできます。

function exists(id, content) {
  return $('#' + id).filter(function(){
    return $(this).text() == content;
  }).length > 0;
}

編集:

すべてのdivの内容を取得するには、次のmapメソッドを使用します。

var arr = $('#' + id + ' div').map(function(){
  return $(this).text();
}).get();
于 2012-08-31T16:51:33.567 に答える
1
$('#log').find('div:contains("DEF")');

動作するはずです。

于 2012-08-31T16:52:22.613 に答える
1
$searchThis = $('.log').html();
if($searchThis.indexOf('search string') != -1){
    actions upon success (you found the string)
}
于 2012-08-31T16:53:00.470 に答える