我想获得点击按钮的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?
请帮帮我。
答案 0 :(得分:7)
尝试
选择按钮类型的所有按钮元素和元素。
$(":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"));
});
});