我有这个文档结构
<div id="log">
<div>ABC</div>
<br/>
<div>DEF</div>
<br/>
...
</div>
其中...
表示任意数量的div,br对。
现在我需要编写一个名为exists的JQuery函数,它接受一个id(在本例中为“log”)和一个字符串(例如“DEF”)并检查是否在“log”div中有任何div的文本匹配“DEF”。我的JQuery很弱,有人可以帮我这个吗?
答案 0 :(得分:4)
if ( $('#log div:contains("DEF")').length ) {
// exists
}
答案 1 :(得分:2)
$("#log").children("div").each(function(){
if( $(this).text() == "DEF")
//do something
});
答案 2 :(得分:1)
您可以使用:contains
selector:
function exists(id, content) {
return $('#' + id + ' div:contains("' + content + '")').length > 0;
}
然而,这并不能完全匹配。如果你想要一个包含完全EAR的div,并且有一个包含BEARS的div,你会得到误报。要进行完全匹配,您可以使用filter
method:
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();
答案 3 :(得分:1)
$('#log').find('div:contains("DEF")');
应该工作。
答案 4 :(得分:1)
$searchThis = $('.log').html();
if($searchThis.indexOf('search string') != -1){
actions upon success (you found the string)
}