我有三个div
级别,我只想获得第二级的值。我使用每个函数内传递的索引参数来跟踪。这是我的代码:
<div id="top">
<div>1</div>
<div>
<h2>
<div>XXXXXXXXX</div>
</h2>
</div>
<div>3</div>
</div>
<div id="result"></div>
和剧本:
$("#top>div").each(function(index){
$("#result").append("<p>index:" + index + " > " + $(this).text() + "</p>");
});
在我的代码中,我希望结果跳过xxxx并保持索引值不变。 http://jsfiddle.net/kalmarsh80/g4JSN/
答案 0 :(得分:1)
您可能需要以下内容(Working Example):
$("#top > div").each(function(index){
var txt = $(this).clone().children().remove().end().text();
$("#result").append("<p>index:" + index + " > " + txt + "</p>");
});
答案 1 :(得分:0)
请尝试以下方法:
$("#top>div").not(":nth-child(2)").each(function(index){
$("#result").append("<p>index:" + index + " > " + $(this).text() + "</p>");
});
如果您只想第二级的值那么您不需要.each
$("#result").append("<p>index:2 > " + $("#top>div").eq(1).text() + "</p>");
答案 2 :(得分:0)
<强> LIVE DEMO 强>
$("#top > div").text(function(i, t){ // Pass element index and text as arguments
t = $(">",this)[0] ? "" : t;
$("#result").append("<p>index:"+ i +" > "+ t +"</p>");
});
$(">",this)[0]
用于检查您的元素是否包含子元素
比使用条件运算符(?:),只需将参数值设置为""
空字符串,如果为真。
如果您需要处理子元素的加载,我建议您使用这个元素:
var res = "";
$("#top > div").text(function(idx, txt){
res += "<p>index: "+ idx +" > "+ ($(">",this)[0]?"":txt) +"</p>";
});
$('#result').append( res ); // append only once!