2012-06-01 6 views
-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?Доступ к дочерним элементам в JQuery

EDIT

OK Я попытался это:

var totaldiv = $("#main").children(); 
var totalElements = []; 
var c = 0; 
$.each(totaldiv, function (i, v) { 
    $(totaldiv[i]).children().each(function() { 
     totalElements[c++] = $(this); 
    }); 
}); 

Есть ли более эффективный способ сделать это?

+1

** ANY ** содержание или точно строка * * содержание .. ** ?? И, пожалуйста, какой именно DIV, родительский DIV или тот, который содержит текст? –

ответ

0

Вы, вероятно, хотите, чтобы исключить более высокие элементы уровня - если вы используете .text() на свой собственный, вы получите каждый элемент, содержащий текст в любом месте ниже, а не только в детских узлах:

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

Demo в http://jsfiddle.net/alnitak/WNKLA/

0

На самом базовом, следующий будет соответствовать вашему примеру выше:

$('#main div div'); 

Предполагая, что есть DIV элементы, которые не могут иметь любой текстовый контент, вы можете попробовать это:

$('#main div div').contents().filter(function(){ return this.length > 0; }) 
0

Вы можете использовать .contents(), чтобы получить доступ ко всему содержимому Div в там innerhtml ..

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

проверить эту ссылку;

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

И

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

И проверить это один .. Это похоже на ваш вопрос

Jquery: Checking to see if div contains text, then action

Смежные вопросы