1

我想知道标签的长度

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Untitled Document</title>
  <script type="text/javascript">
    function clickme(){
      var x=document.getElementsByTagName('a');
      for(i=0;i<x.length;i++) {
        alert(x[i].length)
      }
    }
</script>
</head>
<body>
  <a href="#" value="1">first</a>
  <a href="#" value="2">second</a>
  <a href="#" value="3">third</a>
  <input type="submit"  onclick="clickme()"/>
</body>
4

4 回答 4

5

由于 value 不是链接的标准属性,您可能需要使用.getAttribute("value")

var x = document.getElementsByTagName('a');

for (var i=0; i<x.length;i++){
    alert(x[i].getAttribute("value"));
}
于 2012-04-14T05:05:27.550 回答
2

在这个例子中,x[i]是一个锚点 DOM Element 对象。它通常没有 value 属性。但是,如果您想使用该属性,可以通过以下方式访问它:

x[i].getAttribute('value');

就个人而言,我会使用 HTML5 数据属性并定义如下锚点:

<a href="#" data-value"=1">one</a>

然后通过以下方式访问该值:

x[i].getAttribute('data-value');

如果使用 HTML5 文档类型,这将是有效的。

于 2012-04-14T05:06:34.077 回答
1

jfriend00 是对的。

我想我还要指出,您可能希望在您的 for 之前或内联声明“i”。否则,您使用的全局“i”可能会在其他地方产生意想不到的后果。

于 2012-04-14T05:07:19.933 回答
1

我很困惑,您已将原始问题代码示例从以下位置更改:

<script type="text/javascript">
    function clickme(){
      var x=document.getElementsByTagName('a');
      for(i=0;i<x.length;i++) {
        alert(x[i].value) //<- "value" not a valid property on the anchor tag
      }
    }
</script>

<script type="text/javascript">
    function clickme(){
      var x=document.getElementsByTagName('a');
      for(i=0;i<x.length;i++) {
        alert(x[i].length) //<- "length" not a valid property on the anchor tag
      }
    }
</script>

如果您只是想确定该锚标记本身的有序编号是多少,您可以只使用“i”(再次 - var it!):

<script type="text/javascript">
    function clickme(){
      var x=document.getElementsByTagName('a');
      for( var i=0;i<x.length;i++) {
        alert(i);
      }
    }
</script>

还是我错过了您要问的东西?

于 2012-04-14T05:54:22.173 回答