2014-03-30 55 views
-1

發現使用jQuery元素我的一個元素具有ID身份識別碼和除此之外其它數據 - 屬性有數據myControlId像通過了解數據 - 屬性ID

<a id="myId" onclick="Test(this)" ... data-... data-... data-myControlId="999" role="button"> 
Click me 
</a> 

自從有了這個身份識別碼按鈕呈現在foreach循環多次,我怎麼能識別點擊元素的data-controlId,因爲這個屬性是唯一的。我想用我的javascript函數內部jQuery的,所以我可以刪除的元素等的

function Test(myObj){ 
     var clickedItem = ... 
     clickedItem.removeClass("myClass"); 
    }; 
+1

你知道一個ID必須是唯一的嗎? – putvande

+2

這個問題是無關緊要的,因爲ID必須是唯一的。 – adeneo

回答

0

首先ID CSS類識別它必須是唯一的 ...(不要使用ID屬性,除非你能保持他們獨一無二的,因爲它不會讓有重複值的任何意義,在這種情況下,你可以將其刪除)

其次,因爲你是路過thisTest這是點擊的DOM元素的參考,所以你可以用它來獲得jQuery對象引用如

function Test(myObj){ 
    var clickedItem = $(this) 
    clickedItem.removeClass("myClass"); 
}; 

第三,我會建議使用jQuery的事件處理程序,而不是使用內聯一次


添加一個公共類的所有目標元素像

<a id="myId" class="myclass" ... data-... data-... data-myControlId="999" role="button"> 
    Click me 
</a> 

然後

jQuery(function ($) { 
    $('.myclass').click(function() { 
     var clickedItem = $(this); 
     clickedItem.removeClass("myClass"); 
    }) 
}) 
+0

@downvoter我沒有想過任何 –

1

一種可能的方法:

$('[data-myControlId="' + numberToLookFor + '"]'); 

......但正如您注意到的那樣,您不能有多個具有相同ID的元素。坦率地說,我不明白將ID作爲一種複合關鍵屬性會出現什麼問題。就像這樣:

<a id="control-999">Click me</a> 

找到相應的元素將是微不足道的,那麼:

$('#control-' + numberToLookFor);