香草JavaScript For循环推入数组的名称

Vanilla JavaScript For Loop to push array of names

本文关键字:数组 JavaScript For 循环 香草      更新时间:2023-09-26

模拟标记:

 <div class="post">
   <a name="1234"></a>
 </div>

记住这是模拟标记当然上面还有更多的html,这个a是父.post

中的第一个a标签下面是我的代码:
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规范对这些名称进行分类。

有任何建议,谢谢!

你做的一切都是正确的,但你忘记了.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);

小提琴

您可以使用Tom提到的。value或。getattribute ('name')。

你需要进一步修改你的代码,使它在。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]);
}
http://jsfiddle.net/joybroto/3d9qz/7/