-1
<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);
    });
});

有没有更有效的方法来做到这一点?

4

4 回答 4

3

你有.filter()

var divArr = $('#main div > div').filter(function() {
    return $(this).html();  // return those div not empty, has text or html element
});

演示

于 2012-06-01T08:51:23.500 回答
0

您可能希望排除更高级别的元素 - 如果您单独使用.text(),您将获得包含其下方任何位置的文本的每个元素,而不仅仅是在子节点中:

var haveContent = $('div').filter(function() {
    return $(this).children().length === 0 && $.trim($(this).text()) !== '';
}).get();

演示在http://jsfiddle.net/alnitak/WNKLA/

于 2012-06-01T08:54:54.763 回答
0

在最基本的情况下,以下内容将与您上面的示例相匹配:

$('#main div div');

假设有可能没有任何文本内容的 div 元素,你可以试试这个:

$('#main div div').contents().filter(function(){ return this.length > 0; }) 
于 2012-06-01T08:59:16.047 回答
0

你可以.contents()用来访问innerhtml中的所有div内容。

var arry = $('div:contains(contents)');

检查此链接;

http://api.jquery.com/contains-selector/

https://developer.mozilla.org/en/nodeType

并检查这个..它类似于你的问题

Jquery:检查 div 是否包含文本,然后执行操作

于 2012-06-01T09:03:36.187 回答