Javascript 将find与此一起使用将返回Jquery中未定义的值
我试图循环遍历一个具有类名的元素,并在其中找到输入值:Javascript 将find与此一起使用将返回Jquery中未定义的值,javascript,jquery,ecmascript-6,Javascript,Jquery,Ecmascript 6,我试图循环遍历一个具有类名的元素,并在其中找到输入值: document.querySelectorAll('.qty').forEach(element=>{ console.log($(this).find('input').val()) }) 这将返回未定义的 但是,如果我将上述代码更改为: document.querySelectorAll('.qty').forEach(element=>{ console.log($('.qt
document.querySelectorAll('.qty').forEach(element=>{
console.log($(this).find('input').val())
})
这将返回未定义的
但是,如果我将上述代码更改为:
document.querySelectorAll('.qty').forEach(element=>{
console.log($('.qty').find('input').val())
})
这个
不应该引用带有数量的类名吗。为什么这个
不起作用?这个在javascript中的行为有点不同。其值由函数的调用方式(运行时绑定)决定
有关进一步说明,请参阅本文档:
因为您使用的箭头函数不包含自己的绑定。使用普通ES5功能:
document.querySelectorAll(".qty").forEach(function(element) {
console.log($(this).find("input").val());
});
$(".qty").each((_, e) => console.log(e.find("input").val()));
为了使代码更简洁,可以使用jQuery的内置函数,并丢弃未使用的元素
参数
$(".qty").each(function() {
console.log($(this).find("input").val());
});
或者忘记此
并使用参数,该参数允许您使用箭头功能:
document.querySelectorAll(".qty").forEach(function(element) {
console.log($(this).find("input").val());
});
$(".qty").each((_, e) => console.log(e.find("input").val()));
forEach
中的$(此)表示全局窗口对象。如果您更喜欢使用jquery,请将其更改为$('.qty')。每个
而不是使用querySelectorAll
$('.qty')。每个((i,v)=>{
console.log($(v).find('input').val())
})
请关闭重复项my bad@adiga,我不知道这个问题存在重复项,我没有重复问题的列表,因为我没有太多的重复问题,因为我需要一个金标签徽章。请关闭重复项