2012-04-06 88 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