模拟标记:
<div class="post">
<a name="1234"></a>
</div>
记住这是模拟标记,当然上面有更多的html,这个是父.post
中的第一个标签
这是我的代码:
var pid = [];
var post = document.getElementsByClassName('post');
for(var i=0;i<post.length;i++){
var postId = post[i].getElementsByTagName('a')[0].getAttributeNode('name');
pid.push(postId);
}
alert(pid);
我一直在按字面意思,,,,,,
我尝试了.getAttribute
和.getAttributeNode
我在这里做错了吗?我试图制作一个“名称”数组,以便稍后使用ID规范对它们进行分类。
任何建议都谢谢你!
答案 0 :(得分:3)
你做的一切都没错,但你忘记了.value
:
var pid = [];
var post = document.getElementsByClassName('post');
for(var i=0;i<post.length;i++){
var postId = post[i].getElementsByTagName('a')[0].getAttributeNode('name').value;
pid.push(postId);
}
alert(pid);
答案 1 :(得分:1)
您可以像Tom提到的那样使用.value,也可以使用.getAttribute(&#39; name&#39;)。
您需要进一步修改代码,因为它适用于.post类中的多个锚:
<div class="post">
<a name="1234"></a>
<a name="5678"></a>
<a name="9123"></a>
</div>
JavaScript的:
var pid = [];
var post = document.getElementsByClassName('post');
for(var i=0;i<post.length;i++){
var anchors = post[i].getElementsByTagName('a');
for(var j=0; j<anchors.length; j++){
var name = anchors[j].getAttribute('name');
pid.push(name);
}
}
for(var i=0;i<pid.length;i++){
alert(pid[i]);
}