2012-07-30 46 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