2012-07-30 48 views
1

我的html代碼:選擇在jQuery的 - 讓rel屬性

<li id="vol" rel="1"> 
    // something here 
</li> 
<li id="vol" rel="2"> 
    // something here 
</li> 
<li id="vol" rel="3"> 
    // something here 
</li> 

我試圖通過這個代碼得到rel屬性:

$('#vol').click(function(){ 
    var rel = $(this).attr('rel'); 
}); 

但它不工作。我也將this更改爲#vol,但它不起作用。 我該怎麼辦?

+5

不能使用同一ID多次。 – SVS 2012-07-30 10:57:56

+0

...如果你修復它會一切正常。 – Jon 2012-07-30 10:58:45

回答

4

通過不工作,我假設任何li你點擊,讓你回1,這是由於在頁面中有多個ID造成的。 ID應該是唯一的,而不是使用class。

嘗試通過 「ID」(#ID)

<li class="vol" rel="1"> 
    // something here 
</li> 
<li class="vol" rel="2"> 
    // something here 
</li> 
<li class="vol" rel="3"> 
    // something here 
</li> 

JS: 

$('.vol').click(function(){ 
    var rel = $(this).prop('rel'); 
}); 
+1

通過不工作,我想只有第一個'li'會有一個點擊監聽器綁定它。 – 2012-07-30 11:00:07

1

選擇只選擇一個元素,用 「類」(的.class),而不是

3

你所有id都same.So做出不同的他們。 假設你li裏面ul哪一類是clsTest

$('.clsTest li').click(function(){ 
    var rel = $(this).attr('rel'); 
    alert(rel); 
}); 
1

更改您的代碼以

<li class="vol" rel="1"> 
    // something here 
</li> 
<li class="vol" rel="2"> 
    // something here 
</li> 
<li class="vol" rel="3"> 
    // something here 
</li> 

<script> 
$('body').delegate('li.vol','click',function(){ 
    var rel = $(this).attr('rel'); 
}); 
</script> 
+0

如果要動態附加事件,請使用'delegate'或'on' – coolguy 2012-07-30 11:04:56