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

标签 jquery asp.net

我在页面上有两个 asp 单选按钮,它们放置在 updatepanel 中。我用 jQuery 为他们编写了一个点击事件,如下所示:

$(document).ready(function () {
    $(".inputs").click(function () {
         alert($(this).id);
    });
});

但它返回未定义。有什么问题吗?

EDIT:

        alert(" or " + $(this).attr("id"));
alert(this.id);

这两行返回null!

最佳答案

$(this)this 不同。第一个表示包裹在元素周围的 jQuery 对象。第二个只是你的元素。 id 属性存在于元素上,但不存在于 jQuery 对象上。因此,您有几个选择:

  1. 直接访问元素上的属性:

    this.id

  2. 从 jQuery 对象访问它:

    $(this).attr("id")

  3. 从 jQuery 中拉出对象:

    $(this).get(0).id;//或者 $(this)[0].id

  4. 事件对象获取id:

    当引发事件时,例如单击事件,它们会携带重要的信息和引用。在上面的代码中,您有一个点击事件。该事件对象引用了两个项目:currentTargettarget

    使用target,您可以获取引发事件的元素的id。 currentTarget 只会告诉您事件当前正在冒泡的元素。这些并不总是相同的。

    $("#button").on("click", function(e){ console.log( e.target.id ) });

在所有这些中,最好的选择是直接从 this 本身访问它,除非您参与一系列嵌套事件,那么最好使用 每个嵌套事件的 >event 对象(为它们提供唯一的名称)以引用更高或更低范围中的元素。

关于jquery $(this).id 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10578566/

相关文章:

javascript - 如何显示选定的div并隐藏其他兄弟div?

javascript - 如何捕获jquery对话框的返回值

asp.net - 如何从网站的 .NET 安装程序中排除文件夹?

javascript - 手动加载 CSS 文件时无法查找元素的 CSS 属性

jquery - Flask:在 jQuery ajax $.post 调用后渲染页面

jquery - 如何隐藏我想要的图像,但在同位素中需要时不隐藏

c# - TemplateField 中的 ASP.NET CheckBox

c# - 在ASP.Net中,同组的单选按钮会自动改变Checked状态吗?

asp.net - 什么是 ASP.NET Web 应用程序项目中的 UseCustomServer 和 Use Custom Server Url?

php - jQuery 支持传输编码 :chunked