我有这个文档结构
<div id="log">
<div>ABC</div>
<br/>
<div>DEF</div>
<br/>
...
</div>
其中...
表示任意数量的 div、br 对。
现在我需要编写一个名为 exists 的 JQuery 函数,它接受一个 id(在本例中为“log”)和一个字符串(例如“DEF”),并检查“log” div 中是否有任何 div 的文本与“DEF”匹配”。我的 JQuery 很弱,有人可以帮我解决这个问题吗?
我有这个文档结构
<div id="log">
<div>ABC</div>
<br/>
<div>DEF</div>
<br/>
...
</div>
其中...
表示任意数量的 div、br 对。
现在我需要编写一个名为 exists 的 JQuery 函数,它接受一个 id(在本例中为“log”)和一个字符串(例如“DEF”),并检查“log” div 中是否有任何 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)
}