我只想列出div中的所有元素。如果我有:
<div class="main_container">
<h1>Hello</h1>
<span>Hi</span>
<p>World</p>
</div>
我希望将输出作为
的列表h1
span
p
为了有一个想法,我正在为我的网站中的简单代码片段创建一个DOM树。请帮忙。干杯!
答案 0 :(得分:5)
尝试使用元素的tagName
属性
var tagNames = $('.main_container >').map(function(){
return $(this).prop('tagName');
}).get(); //['h1','span','p'];
根据您的新要求,您可以这样做,
$('.main_container >').each(function(){
console.log($(this).prop('tagName'));
});
作为附注,我使用此选择器'.main_container >'
来选择直接子元素,如果要选择所有后代,则只需将其替换为'.main_container *'
答案 1 :(得分:2)
像这样使用,
$(".main_container").find("*").each(function(){
alert($(this).prop("tagName"));
});
<强> Fiddle 强>
答案 2 :(得分:1)
你必须这样做:
$(".main_container").children().each(function(index,item){
alert($(item).prop("tagName"));
})
获取子项,然后迭代它们以获取每个元素。
你也可以创建它的数组:
var elements = $(".main_container").children().map(function(index,item){
return $(item).prop("tagName");
})
答案 3 :(得分:1)
试试这个
var urarr=[];
$('.main_container >').each(function(){
urarr.push($(this).prop('tagName'));
});
for(var i in urarr)
$('body').append(urarr[i]+'<br>');
答案 4 :(得分:1)
Demo 试试这个
var t = $(".main_container").find("*").map(function(i,val){
return $(this).prop("tagName");
}).get();
答案 5 :(得分:0)
仅限javascript,您可以使用Node.children
或`Node.childNodes&#39;。
Node.children 会跳过所有空格,即。 #text不会显示,而 Node.childNodes 会计入空格。
注意:它们都返回一个数组。文本节点将显示在控制台中,但在窗口中不可见。
document.getElementsByClassName(&#39; main_container&#39;)[0]。儿童; // 0是索引
返回元素。
document.getElementsByClassName(&#39; main_container&#39;)[0]。孩子;
返回#text和元素
<强> Fiddle 强>