2012-04-14 4 views
1

я хочу знать длину теговцикл javascript не работает?

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

ответ

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» (и снова - вар это!):

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

Или я упускаю что-то ТНА ты спрашиваешь?

5

Поскольку значение не является стандартным свойством связи, вам, вероятно, нужно использовать .getAttribute("value"):

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

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

спасибо, что это работает, теперь я хочу выбрать длину, чтобы сделать это – Carlos

2

В этом примере x[i] является объект привязки DOM Element. Обычно он не имеет свойства значения. Тем не менее, если вы хотите использовать свойство, вы можете получить доступ к нему через:

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

Лично я хотел бы использовать атрибуты данных HTML5 и определить якорь, как:

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

Затем доступ к значению через:

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

Если используется doctype HTML5, это будет действительным.

1

jfriend00 получил это право.

Я думал, что также хотел бы указать, что вы можете объявить «i» либо впереди, либо inline с вашим. В противном случае вы используете глобальное «i», которое может иметь неожиданные последствия в других местах.

Смежные вопросы