2015-10-08 17 views
6

mam powiązań skonfigurować tak:

HTML:

<a href="www.example1.com" class="some-link"> 
<a href="www.example2.com" class="some-link"> 
<a href="www.example3.com" class="some-link"> 
<a href="www.example4.com" class="some-link"> 

Chcę uzyskać href s że zawierają znaczniki <a>. Próbowałem iterację każdego linku tak:

JavaScript/jQuery:

for (x=0; x < 5; x++) { 
    link = $(".some-link")[x].attr("href"); 
    console.log(link); 
} 

Kiedy próbuję to pojawia się błąd TypeError: $(...)[x].attr is not a function. W czym problem? Dzięki.

Odpowiedz

11

Trzeba użyć eq() tutaj, ponieważ $(".some-link")[x] zwrotów dom obiektu attr() metoda może korzystać tylko z obiektu jQuery. Więc nee używać eq(x) lub :eq()

for (x=0; x < 5; x++) { 
 
    link = $(".some-link").eq(x).attr("href"); 
 
    console.log(link); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<a href="www.example1.com" class="some-link"> 
 
<a href="www.example2.com" class="some-link"> 
 
<a href="www.example3.com" class="some-link"> 
 
<a href="www.example4.com" class="some-link"> 
 
<a href="www.example4.com" class="some-link">

lub użyć each() metodę zamiast

$(".some-link").each(function(){ 
 
    var link=$(this).attr("href"); 
 
    console.log(link); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<a href="www.example1.com" class="some-link"> 
 
<a href="www.example2.com" class="some-link"> 
 
<a href="www.example3.com" class="some-link"> 
 
<a href="www.example4.com" class="some-link"> 
 
<a href="www.example4.com" class="some-link">

lub bardziej łatwy sposób wykorzystywać attr() z zwrotnego

$(".some-link").attr("href",function(i,link){ 
 
    console.log(link); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<a href="www.example1.com" class="some-link"> 
 
<a href="www.example2.com" class="some-link"> 
 
<a href="www.example3.com" class="some-link"> 
 
<a href="www.example4.com" class="some-link"> 
 
<a href="www.example4.com" class="some-link">

1

[1] indeksatora (odpowiednik .get()) nie zwraca element jQuery, ale element Dom. Spróbuj

var link = $(".some-link").eq(x).attr("href"); 

Na marginesie, prawdopodobnie chcesz zadeklarować zmienną używając var.

Powiązane problemy