jquery$(this).id返回未定义

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

我在一个页面上有两个asp单选按钮,它们位于
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

  • 从jQuery对象访问它:

    $(this.attr(“id”)

  • 将对象从jQuery中拉出:

    $(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);
    });