2010-09-09 80 views
0

我的HTML:jQuery的點擊問題

<div id="menu"><ul><li>menu one<ul> 
<li><a id="home">home</a></li> 
<li><a id="contact">contact us</a></li> 
</ul></li></ul></div> 

的Jquery:

$('#menu').click(function(){ 
     alert($(this).find('a').attr('id')); 
    }); 

我想找到一個點擊的價值。我的代碼返回空。

+0

如何將事件綁定到$('#menu a'),然後執行alert($(this).attr('id'))? – Guttsy 2010-09-09 03:55:18

回答

2
$('#menu a').click(function(){ 
    alert($(this).html()); 
}); 

如果你想要的ID,然後做

$('#menu a').click(function(){ 
    alert($(this).attr('id')); 
}); 
0

你.find( 'A')將返回多個元素。如果要使用.each()循環顯示每個值。否則,做這樣的事情:.find( 'A')[0] .attr( 'ID')

循環代碼:

xxx.find( 'A')各(警報($(本).attr('id'));)

0

您的代碼適用於我,它每次都會返回「首頁」,因爲這是div的第一個後裔a。也許你正在尋找更多的東西一樣

$('#menu a').click(function(){ 
     alert($(this).attr('id')); 
    });​ 

小提琴http://jsfiddle.net/rsbPt/

0

之所以這樣是行不通的,是因爲$(this).find('a')返回數組,因此你需要遍歷所有的錨在#menu獲得他們的id。你可以做到這一點與.each()功能:

$('#menu').click(function(){ 
    $(this).find('a').each(function(){ alert(this.id) }); 
}); 

給你兩個alert()爲您提供的HTML,每一個不同的id。然後,您可以用任何需要在每個錨上執行的功能來替換alert()