私はこの文書構造を持っています
<div id="log">
<div>ABC</div>
<br/>
<div>DEF</div>
<br/>
...
</div>
where...
は、任意の数の div と br のペアを表します。
次に、id (この場合は "log") と文字列 ("DEF" など) を受け取り、"log" div にテキストが "DEF "。JQuery が弱いのですが、誰か助けてくれませんか?
私はこの文書構造を持っています
<div id="log">
<div>ABC</div>
<br/>
<div>DEF</div>
<br/>
...
</div>
where...
は、任意の数の div と br のペアを表します。
次に、id (この場合は "log") と文字列 ("DEF" など) を受け取り、"log" div にテキストが "DEF "。JQuery が弱いのですが、誰か助けてくれませんか?
if ( $('#log div:contains("DEF")').length ) {
// exists
}
$("#log").children("div").each(function(){
if( $(this).text() == "DEF")
//do something
});
: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();
$('#log').find('div:contains("DEF")');
動作するはずです。
$searchThis = $('.log').html();
if($searchThis.indexOf('search string') != -1){
actions upon success (you found the string)
}