<div id="main">
<div id="1">
<div>contents..</div>
<div>contents..</div>
</div>
<div id="2">
<div>contents..</div>
<div>contents..</div>
</div>
<div id="3">
<div>contents..</div>
<div>contents..</div>
</div>
</div>
如何将所有div object
访问到具有contents in there innerHTML
的单个数组?
修改
好的我试过了:
var totaldiv = $("#main").children();
var totalElements = [];
var c = 0;
$.each(totaldiv, function (i, v) {
$(totaldiv[i]).children().each(function () {
totalElements[c++] = $(this);
});
});
有没有更有效的方法来做到这一点?
答案 0 :(得分:3)
var divArr = $('#main div > div').filter(function() {
return $(this).html(); // return those div not empty, has text or html element
});
<强> DEMO 强>
答案 1 :(得分:0)
您可能希望排除更高级别的元素 - 如果您自己使用.text()
,您将获得包含文本的任何位置的所有元素,而不仅仅是在子元素中节点:
var haveContent = $('div').filter(function() {
return $(this).children().length === 0 && $.trim($(this).text()) !== '';
}).get();
演示
答案 2 :(得分:0)
最基本的是,以下内容符合您的上述示例:
$('#main div div');
假设有div元素可能没有任何文本内容,您可以试试这个:
$('#main div div').contents().filter(function(){ return this.length > 0; })
答案 3 :(得分:0)
您可以使用.contents()
访问innerhtml中的所有div内容..
var arry = $('div:contains(contents)');
检查此链接;
http://api.jquery.com/contains-selector/
和
https://developer.mozilla.org/en/nodeType
并检查一下..这与你的问题类似