2014-03-30 43 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);