jquery$(this).id返回未定义
我在一个页面上有两个asp单选按钮,它们位于jquery$(this).id返回未定义,jquery,asp.net,Jquery,Asp.net,我在一个页面上有两个asp单选按钮,它们位于updatepanel中。我用jQuery为他们编写了一个点击事件,如下所示: $(document).ready(function () { $(".inputs").click(function () { alert($(this).id); }); }); 但它返回未定义的。有什么问题 EDIT: alert(" or " + $(this).attr("id")); alert(this.i
updatepanel
中。我用jQuery为他们编写了一个点击事件,如下所示:
$(document).ready(function () {
$(".inputs").click(function () {
alert($(this).id);
});
});
但它返回未定义的。有什么问题
EDIT:
alert(" or " + $(this).attr("id"));
alert(this.id);
这两行返回
null
$(this)
是一个jQuery对象,它正在包装DOM元素this
,而jQuery对象没有id
属性。您可能只需要this.id
来获取单击元素的id
属性。Hiyademo
这是对DOM元素的引用,因此可以直接包装它
attr
api:
.attr()方法仅获取匹配集中第一个元素的属性值
祝你玩得愉快,干杯
代码
$(document).ready(function () {
$(".inputs").click(function () {
alert(this.id);
alert(" or " + $(this).attr("id"));
});
})); 这是DOM元素
$(this):Jquery objct,用Dom元素包装,您也可以检查这个答案
像这样试试。获取匹配元素集中第一个元素的属性值
$(document).ready(function () {
$(".inputs").click(function () {
alert(" or " + $(this).attr("id"));
});
});
$(this)
和this
不一样。第一个表示围绕元素的jQuery对象。第二个就是你的元素。元素上存在id
属性,但jQuery对象上不存在该属性。因此,您有几个选择:
this.id
$(this.attr(“id”)
$(this.get(0.id);//或$(此)[0]。id
事件
对象获取id
:
当引发事件时,例如单击事件,它们会随身携带重要信息和引用。在上面的代码中,您有一个单击事件。此事件对象引用了两项:currentTarget
和target
使用target
,可以获取引发事件的元素的id
currentTarget
将简单地告诉您事件当前正在冒泡通过哪个元素。这些并不总是相同的
$(“#按钮”)。打开(“单击”,函数(e){console.log(e.target.id)})代码>
this
本身访问它,除非您参与了一系列嵌套事件,否则最好使用每个嵌套事件的event
对象(给它们所有唯一的名称)引用更高或更低范围内的元素。另一个选项(正如你所看到的):
HTH.使用此激活
$(document).ready(function () {
var a = this.id;
alert (a);
});
总是使用console.log();这会容易得多。在您的示例中,您可以使用:console.log(this);它显示所有数据(id、className等)。显然,这是一个非常流行的问题,当我在jquery中搜索“$(this.id)”时,这是头号搜索结果。您的答案是正确的,帮助了我。我使用了.attr()方法,效果很好。谢谢!@Pier确实这是最好的答案,但不是唯一正确的答案。@yeyo但这是更有用、更优雅、更完整的答案。它甚至包括了选项#4“正确”答案中列出的答案。OP应该将其设置为正确答案。
$(document).ready(function () {
var a = this.id;
alert (a);
});