2015-03-05 3 views
0

Зачем возникает ошибка в консоли? «Uncaught SyntaxError: Неожиданный токен»;jQuery beginner ".each()"

JQuery:

$("#menu a").each(function(){ 
console.log(($this.attr("href")); 
}); 

HTML:

<body> 
<div id="menu"> 
    <ul> 
     <li class="selected"><a href="index.html">Home</a></li> 
     <li><a href="about.html">About</a></li> 
     <li><a href="contact.html">Contact</a></li> 
     <li><a href="support.html">Support</a></li> 
     <li><a href="faqs.html">FAQs</a></li> 
     <li><a href="events.html">Events</a></li> 
    </ul> 
</div> 

+0

вы можете использовать this.href – lshettyl

+1

@LShetty обратите внимание, что 'this.href' предоставит вам абсолютный URL-адрес в некоторых случаях, что может и не быть тем, что требует OP. 'attr' дает вам точную строку атрибута. –

+0

У вас есть дополнительные открывающиеся круглые скобки в 'console.log()'; –

ответ

4

У вас есть неправильно подобранные скобки, и $this должны быть $(this):

$("#menu a").each(function(){ 
    console.log($(this).attr("href")); 
}); 
1

Он должен быть $(this), а не $this.

А также у вас есть дополнительные круглые скобки открыты внутри console.log

Что-то вроде этого

$("#menu a").each(function(){ 
    console.log($(this).attr("href")); 
}); 
0

Попробуйте Working Demo

$("#menu ul li a").each(function(){ 
console.log(($(this).attr("href"))); 
}) 
0

Просто используйте this.href

$("#menu a").each(function(){ 
    //to grab the absolutel URL 
    console.log(this.href); 
    //To get the string from href 
    console.log ($(this).attr("href")); 
}); 
+0

Я все еще путаю это vs $ (this) – causita

+0

@causita, справа, взгляните на [ответ здесь] (http://stackoverflow.com/questions/3633270/difference-between-this-and-this- в-JQuery) – lshettyl

0

$this будет возвращать такую ​​ошибку, поскольку она не определена, а $(this) относится к каждой отдельной ссылке (<a href="#">) и будет работать нормально.