jquery类选择器问题

时间:2012-06-28 21:16:33

标签: jquery jquery-ui jquery-plugins

我的表格中有以下按钮

<td><Button  id="approval_<?php echo $i; ?>" type="submit"  class="myclass btn success trr" ><span>Approve</span> </button>
</td>
<td><Button  id="approval_<?php // echo $i; ?>" type="submit"  class="smyclass btn failed trr" ><span>Deny</span> </button>
</td> 

我需要做一个onclick动作

像这样的事情

$('.myclass').click(function() {}

问题是如何判断点击了哪个按钮?

5 个答案:

答案 0 :(得分:1)

您可以检查按钮是否包含具有jQuery函数hasClass的类。

$('.myclass').click(function() {
    if($(this).hasClass('success')){
        alert("Success!");
    }
});

关键字 this 将是您点击的按钮。您可以通过编写$(this)来使用jQuery包装它,这将允许您在其上使用大量方便的jQuery函数。

答案 1 :(得分:1)

在click函数中,您可以使用$(this)来引用执行操作的元素。

所以:

$('.myclass').click(function() {
    $(this).doStuff();
});

快速注意 - 您将要缓存$(this)。这样,您可以根据需要多次引用它,但只会执行一次DOM查找。

如:

$('.myclass').click(function() {
    var $this = $(this);
    $this.doStuff();
    $this.doMoreStuff();
});

答案 2 :(得分:0)

$('.myclass').click(function() {
    // In here "this" refers to your element that was clicked.
    // You can do whatever you want with it from here.
    // If you want to use jQuery make sure to wrap it like $(this)
});

我建议看看jQuery Tutorials它会解释很多关于jQuery如何工作的方法,这将为你节省很多时间

答案 3 :(得分:0)

通过这种方式,您将能够获取索引并定义单击的“成功”或“失败”

$('.myclass').click(function() {
    // Get the index
    var index = $(this).attr('id').split('_')[1];

    // Check success or failed
    if ($(this).hasClass('success')) {
        // success
    } else {
        // failed
    }
});

答案 4 :(得分:0)

我预见到这个问题:

id="approval_<?php echo $i; ?>"

它发生两次,每个按钮一次。你不希望元素共享(以及其他)这个原因的id。将第二个按钮中的代码更改为:

id="denial_<?php echo $i; ?>"

然后在click事件处理程序内部,您可以检查您的行为的ID:

$('.myclass').click(function() {

    var action = this.id.split('_')[0];
    var identifier = this.id.split('_')[1];

    if (action == 'approval') {

        if (identifier == 'abc123') {

            alert('Why is the rum gone!?');

        } else if (identifier == 'def456') {

            alert('I have bath salts, wanna party?');

        }

    } else if (action == 'denial') {

        alert('Fact: Picture messaging is for lovers!');

    }

});