动态添加的输入元素不会在脚本中返回值

dynamically added input element doesn't return value in script

本文关键字:脚本 返回值 添加 输入 元素 动态      更新时间:2023-09-26

在静态div(使用类"workItems")中添加动态输入元素(使用类"dateValidation")后,我使用它来提供onclick函数:

$(".workItems").on("click", ".dateValidation", function()
{...});

当我在上面的函数中运行 f.e

alert(this);

我得到: [object HTMLInputElement] (我认为这很好)

但是,当我运行时:

alert(this.val());
alert(this.hasClass("dateValidation"));

什么也没发生。这段代码有什么问题?如何获取此输入元素的 f.e 值?

this是一个

DOM 元素,你需要在它上运行 jquery 函数之前将其转换为 jquery 元素

alert($(this).val());
alert($(this).hasClass("dateValidation"));

使用 $(this).val()$(this).hasClass("dateValidation"); 代替这个。

this是DOM对象,而$(this)是jQuery包装器。

使用 this ,你可以调用 DOM 方法/属性,但不能调用 jQuery 方法。而当使用$(this)时,你可以调用jQuery方法而不是DOM方法。

在您的情况下,您尝试使用 DOM 对象访问 jQuery 方法val() this这是错误的。所以你必须使用jQuery方法使用jQuery包装器$(this)

更新后的脚本将是这样的。

alert($(this).val());
alert($(this).hasClass("dateValidation"));

希望这能帮助您找到问题!