JavaScript循环不起作用

javascript loop not working?

本文关键字:不起作用 循环 JavaScript      更新时间:2023-09-26

我想知道标签的长度

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

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

var x = document.getElementsByTagName('a');
for (var i=0; i<x.length;i++){
    alert(x[i].getAttribute("value"));
}

在此示例中,x[i] 是一个锚点 DOM 元素对象。它通常没有值属性。但是,如果要使用该属性,可以通过以下方式访问它:

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

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

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

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

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

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

我很

困惑,您已经将原始问题代码示例从:

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

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

jfriend00 做对了。

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