2012-04-06 78 views
3

这里得到的ID,而不是类是什么我测试http://jsfiddle.net/5hhRF/可以从点击类从点击ID

中的jsfiddle还有数1 2 1 2 ....当u单击最后一个数字是“2 “它不警惕。

我是否遗漏了这种情况下的一些代码?

我在这里再次复制相同的代码。

<span class="open-option" id="option1" >1</span> 
<span class="open-option" id="option2" >2</span> 

<span id="open-option" class="option1" >1</span> 
<span id="open-option" class="option2" >2</span>​ 
 

    $(".open-option").click(function(){      
     var myID=$(this).attr('id'); 
     alert(myID); 
    }); 

    $("#open-option").click(function(){      
     var myClass=$(this).attr('class'); 
     alert(myClass); 
    }); 


         ​
+0

好了,谢谢你全部的答案(其中r大多相同)。我认为“(this)”可以唯一标识点击的ID。我的错误假设:( – cjmling 2012-04-06 06:17:25

回答

3

click事件仅绑定到第一个具有给定ID的元素。

页面中的ID必须是唯一的。

0

根据here,元素ID必须是唯一的,恐怕。否则,你的代码根本无法工作。

1

jQueryidselector返回一个数组,但只包含DOM中的第一个元素,并带有id。因此,这里在代码中click handler is being applied to 1st DOM elements only

可以使contains selector

$("span[id*='open-option']").click(function(){      
    var myClass=$(this).attr('class'); 
    alert(myClass); 
}); 

小提琴的使用:http://jsfiddle.net/5hhRF/4/

+0

虽然我接受了ID应该是唯一的这一事实,所以我会遵循这一点但非常感谢你的黑客代码。你可以链接我到DOC,以便更好地理解你使用的选择器类型。span [id^='。再次感谢:D – cjmling 2012-04-06 06:25:27

+1

你应该实际接受这个答案,因为它不告诉你的原因,但也给你的替代解决方案lollzzz ...无论如何,你最欢迎..你可以找到它http: //api.jquery.com/category/selectors/ – 2012-04-06 06:26:31