我有一些与某个类相关的链接元素并为其分配了行属性,并且我试图根据属性值触发点击事件。
<a class="manage_edit_nb" nb_id="1"></a> | <a class="manage_del_nb" nb_id="1"></a>
<a class="manage_edit_nb" nb_id="2"></a> | <a class="manage_del_nb" nb_id="2"></a>
<a class="manage_edit_nb" nb_id="3"></a> | <a class="manage_del_nb" nb_id="3"></a>...
&#13;
是否可以针对某个类触发某个属性值的Click或任何事件?
如果我尝试类似
的话
$('a[nb_id = "1"]').trigger('click');
&#13;
它会触发所有元素的click事件而不管是什么类,但我没有弄清楚如何将类引用放在那里!
答案 0 :(得分:3)
这应该可以正常工作。
$('a.manage_edit_nb[nb_id="1"]').trigger('click');
这里有效:
答案 1 :(得分:1)
首先,3.0.4
不是有效属性,而是使用nb_id
。允许使用data-id
属性,我个人也喜欢它们。并且,可以使用data-*
方法访问它们,并且可以使用$.attr('data-id')
更新它们的值。回到问题,尝试使用下面的选择器
$.attr('data-id', 'new value')
OR
$('.manage_del_nb[data-id="1"]').get(0).click();
为什么$('.manage_edit_nb[data-id="1"]').get(0).click();
?假设元素已与.get(0)
或.click(callback())
绑定,.on('click')
将不会执行任何操作,因此我使用.trigger('click')
来获取具有该方法的DOM对象模拟click事件。无论如何说,您可以按照您已经使用的方式使用.get(0)
答案 2 :(得分:1)
您尝试通过上述代码执行的操作是在'.manage_edit_nb'和'.manage_del_nb'选择器上触发click事件,因此两者都发生了事件。通过给出类名称
来尝试更具体一些 $('a.manage_edit_nb[nb_id = "1"]').trigger('click');
答案 3 :(得分:0)
我认为这正是您所需要的:首先,将所有nb_id
更改为data-nb_id
。并使用以下代码,需要jquery。
$(document).ready(function() {
// Handle click event on the class required
$('.manage_edit_nb').click(function(){
// Get nb_id of that particular anchor event of the class
var nb_id= $(this).attr('data-nb_id');
// Switch on nb_id
switch(nb_id){
// Handle your cases separately here
case "1":
alert('Case 1');break;
case "2":
alert('Case 2');break;
case "3":
alert('Case 3');break;
}
});
});