使用JQuery获取特定div中的所有div

时间:2012-08-31 16:47:23

标签: 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很弱,有人可以帮我这个吗?

5 个答案:

答案 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

从ID中创建选择器字符串
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)
}