-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ですか?

編集

OK私はこれを試しました:

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

最も基本的には、以下は上記の例と一致します。

$('#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 に答える
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 に答える