找到点击按钮的ID

时间:2014-04-24 07:11:28

标签: javascript jquery html

我想获得点击按钮的ID,因为我的表单上有4-5个按钮。

    <button type="submit" style="height: 30px" id="btnHelp" name="btnHelp" onclick="ShowHelp(2);return false;">Help</button>

    <button type="button" style="height: 30px" id="btnClose" name="btnClose" onclick="Close();return false;">Close</button>

    <button type="button" style="height: 30px" id="btnSave" name="btnSave" onclick="Save();return false;">Close</button>

...............................

无论哪个按钮点击,我只想获得该按钮的ID。

$(function () {

        var id = $(this).attr('id');

        alert(id);
})

还有

$("input").click(function (event) {
        var urlid = $(this).attr('id')
        alert(urlid);
    })

但我收到的警告是未定义的。

如何点击按钮的ID?

请帮帮我。

7 个答案:

答案 0 :(得分:7)

尝试

:button Selector

  

选择按钮类型的所有按钮元素和元素。

$(":button").click(function (event) {
    var urlid = this.id;
    alert(urlid);
});

<小时/> Fiddle Demo

<小时/> 的问题

$("input") - &gt;选择标记为input的元素,例如。 <input type="text"/>但不是<button>代码。

答案 1 :(得分:2)

非常简单:

$("input").click(function (event) {
        var urlid = this.id;
        alert(urlid);
    })

按钮:

  $("button").click(function (event) {
            var urlid = this.id;
            alert(urlid);
        })

答案 2 :(得分:2)

您可以尝试将event作为参数传递到任何事件处理程序而不是this,而event.target指的是实际触发处理程序(被点击)和event.delegateTarget的元素是元素处理程序最初附加。在这两种情况下,您可能必须使用$()来使用jQuery,或者只是坚持在任何一种情况下访问.id

在你的情况下,这将是

$("input").click(function (event) {
    var urlid = $(event.delegateTarget).attr('id');
    alert(urlid);
});

确保处理程序始终访问它已附加到此处。

除了这个非常简单的情况,依赖this有时比使用提供的参数更棘手。

编辑:但是,您的案例似乎与Tusha Gupta遇到的问题有关,当然。您的按钮不是“输入”,因此实际上永远不会附加处理程序。

答案 3 :(得分:2)

我尝试用事件触发器替换this

var urlid = $(event.target).attr("id");

此外,您的onclick功能可能会阻止您的脚本执行,因为它会处理点击事件,而不会让您的功能执行此操作。

答案 4 :(得分:2)

我放弃了您拥有的按钮的onclick属性,并将点击事件挂钩到button而不是input,并且它有效。因此,请检查您是否连接到正确的元素。 请参见示例here

答案 5 :(得分:2)

<script>
jQuery(":button").click(function (event) {
        var urlid = $(this).attr('id')
        alert(urlid);
    })
</script>

试试这项工作

答案 6 :(得分:1)

$(function () {

       $("button").click(function () {

        alert($(this).attr("id"));
    });
});