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

値はリンクの標準プロパティではないため、おそらく次を使用する必要があります.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要素オブジェクトです。通常、valueプロパティはありません。ただし、プロパティを使用する場合は、次の方法でアクセスできます。

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

個人的には、HTML5データ属性を使用して、次のようにアンカーを定義します。

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

次に、次の方法で値にアクセスします。

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

HTML5 doctypeが使用されている場合、これは有効です。

于 2012-04-14T05:06:34.077 に答える
1

jfriend00はその通りです。

「i」を前に宣言するか、forにインラインで宣言することもできますが、私も指摘したいと思います。それ以外の場合は、他の場所で予期しない結果をもたらす可能性のあるグローバル「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 に答える