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

时间:2015-12-24 12:43:12

标签: javascript jquery html

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



<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;
&#13;
&#13;

是否可以针对某个类触发某个属性值的Click或任何事件?

如果我尝试类似

的话

&#13;
&#13;
$('a[nb_id = "1"]').trigger('click');
&#13;
&#13;
&#13;

它会触发所有元素的click事件而不管是什么类,但我没有弄清楚如何将类引用放在那里!

4 个答案:

答案 0 :(得分:3)

这应该可以正常工作。

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

这里有效:

https://jsfiddle.net/link2twenty/g0txnzfw/

答案 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;
        }
    });    
});