2

模拟标记:

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

记住这是模拟标记当然上面还有更多的html,这个a是父级中的第一个a标签.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 规范对它们进行分类。

任何建议谢谢!

4

2 回答 2

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);

小提琴

于 2013-06-06T00:40:52.233 回答
1

您可以使用 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/

于 2013-06-06T00:53:38.117 回答