Javascript 触发器单击具有特定类和属性的元素

Javascript 触发器单击具有特定类和属性的元素,javascript,jquery,html,Javascript,Jquery,Html,我有一些与某个类相关的链接元素,并为其分配了行属性,我正试图根据属性值触发click事件 | | |…这应该可以正常工作 $('a.manage_edit_nb[nb_id="1"]').trigger('click'); 这就是它的工作原理: 首先,nb\u id不是有效的属性,请使用数据id数据-*属性是允许的,我个人喜欢它们。并且,可以使用$.attr('data-id')方法访问它们,并且可以使用$.attr('data-id','new value')更新它们的值。回到问题,尝试

我有一些与某个类相关的链接元素,并为其分配了行属性,我正试图根据属性值触发click事件

|
| 
|…
这应该可以正常工作

$('a.manage_edit_nb[nb_id="1"]').trigger('click');
这就是它的工作原理:


首先,
nb\u id
不是有效的属性,请使用
数据id
<代码>数据-*属性是允许的,我个人喜欢它们。并且,可以使用
$.attr('data-id')
方法访问它们,并且可以使用
$.attr('data-id','new value')
更新它们的值。回到问题,尝试使用下面的选择器

$('.manage_del_nb[data-id="1"]').get(0).click();


为什么
.get(0)
?假设元素已与
绑定。单击(callback())
。在('click')
上,
.trigger('click')
将不起任何作用,因此我使用
.get(0)
获取DOM对象,该对象具有模拟单击事件的方法。不管怎么说,您都可以使用
trigger('click')
您已经在使用的方式

上述代码尝试做的事情是在两个选择器上都触发一个click事件。manage\u edit\u nb'和.manage\u del\u nb'选择器,因此事件都在这两个选择器上发生。尽量给类名更具体一些,比如

  $('a.manage_edit_nb[nb_id = "1"]').trigger('click');

我认为这正是您需要的:首先,将所有
nb\u id
更改为
data-nb\u 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;
        }
    });    
});

仅供参考:
nb\u id
不是有效的属性还有,
$('a.manage\u edit\u nb[nb\u id=“1”])
定义指定的行属性是否要单击一个定位点并触发另一个定位点?(例如,id='1'到id='1'),顺便说一句,id必须是唯一的,并且在id前面加上
nb\u
只会使其无效(即不存在,在各个方面都非常错误)。是的,nb\u id无效!我应该用数据id替换它!是的,那太好了,我的眼睛都被这个
nb\u
-\uz弄痛了-它确实工作得很好,但是
单击
事件与调用
触发器不同:执行所有附加到给定事件类型的匹配元素的处理程序和行为。@Thomas OK,我已经修改了它:-)
$(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;
        }
    });    
});