Javascript 动态添加的输入元素不';t在脚本中返回值

Javascript 动态添加的输入元素不';t在脚本中返回值,javascript,jquery,html,Javascript,Jquery,Html,在静态div(类为“workItems”)中添加动态输入元素(类为“dateValidation”)后,我使用它来提供onclick函数: $(".workItems").on("click", ".dateValidation", function() {...}); 当我在上面的函数中运行f.e alert(this); 我得到:[对象HTMLInputElement](我认为它很好) 但是,当我跑步时: alert(this.val()); alert(this.hasClass("d

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

$(".workItems").on("click", ".dateValidation", function()
{...});
当我在上面的函数中运行f.e

alert(this);
我得到:[对象HTMLInputElement](我认为它很好)

但是,当我跑步时:

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

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

是一个DOM元素,在对其运行jquery函数之前,需要将其转换为jquery元素

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

这是一个DOM元素,在对其运行jquery函数之前,需要将其转换为jquery元素

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

使用
$(this.val()
$(this.hasClass)(“日期验证”)而不是这个。

使用
$(this).val()
$(this).hasClass(“日期验证”)
而不是这个。

这个是DOM对象,而$(这个)是jQuery包装器

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

在本例中,您试图使用DOM对象访问jQuery方法
val()
,这是错误的。因此,您必须使用jQuery包装器
$(this)
来使用jQuery方法

更新后的脚本如下所示

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

希望这将有助于您找到问题

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

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

在本例中,您试图使用DOM对象访问jQuery方法
val()
,这是错误的。因此,您必须使用jQuery包装器
$(this)
来使用jQuery方法

更新后的脚本如下所示

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

希望这将有助于您找到问题

@nolbadi111是您的
\u checkingDate
函数,它需要一个DOM对象或jquery对象$(“.workItems”)。在(“.click”、“.dateValidation”上,函数(){settingPlaceholderDate(this);}和函数{setingplaceholderdate(providedDate){$(providedDate).attr(“placeholder”,“dd mm rrr”);}@nolbadi111这行得通吗?问题是什么?不,它不起作用,只在动态添加的输入上起作用。当我使用_settingPlaceholderDate(这个)在静态元素上,一切都是正确的。我不明白这一点。你能添加你在问题中面临的实际问题吗?@nolbadi111是你的
\u checkingDate
函数,它需要一个DOM对象或jquery对象$(“.workItems”)。在(“click”、“.dateValidation”,function(){u settingPlaceholderDate(this);}函数_settingPlaceholderDate(providedDate){$(providedDate).attr(“占位符”,“dd mm rrrr”);};@nolbadi111是否正常工作?问题是什么?不,它不工作,但只在动态添加的输入上工作。当我使用_settingPlaceholderDate(此)关于静态元素,一切都是正确的。我不明白这一点。你能在你的问题中添加你面临的实际问题吗?