Javascript 循环的jQuery返回除第一个字符外的未定义字符
我试图弄清楚为什么我的for循环返回为“未定义”,除了第一个字符。我尝试了很多不同的方法,包括.each()和$.each()jQuery方法,结果都是一样的。我感谢你事先的帮助Javascript 循环的jQuery返回除第一个字符外的未定义字符,javascript,jquery,html,Javascript,Jquery,Html,我试图弄清楚为什么我的for循环返回为“未定义”,除了第一个字符。我尝试了很多不同的方法,包括.each()和$.each()jQuery方法,结果都是一样的。我感谢你事先的帮助 $(“.two-factor input:last child”)。在(“keyup”,function()上{ if($(this.val()!=“”){ 变量输入=$(“.two-factor input”); var输出=”; 对于(变量i=0;iit.value.trim()).join(“”); $('.m
$(“.two-factor input:last child”)。在(“keyup”,function()上{
if($(this.val()!=“”){
变量输入=$(“.two-factor input”);
var输出=”;
对于(变量i=0;i
此版本的逻辑映射所有输入值,然后将它们合并为一个字符串。如果字符串的长度与输入数匹配,则设置该值。否则它会将值清空
var$input=$(“.two-factor input”);
$inputs.last().on(“keyup”,function()){
var newValue=$inputs.get().map(it=>it.value.trim()).join(“”);
$('.modal message').val(
(newValue.length==$inputs.length)?newValue:“”
);
});代码>
您应该以不同的方式进行循环,但如果您想以这种方式进行循环,请使用eq()。另外,最好将输入命名为->$inputs
output+=input.eq(i).val()代码>这不是使用jQuery对象的方式,您应该看看input.val()[i]代码>应该是input.eq(i).val()代码>在for()循环上使用.each()是否有好处?我使用了提图斯建议的语法:$(“.two-factor input:last child”).on(“keyup”,function(){if($(this.val()!=”){var-input=$(.two-factor input”);var-output=“”;$.each(输入,函数(I,val){output+=val.value;});$(.modal-message.val(输出);});使用each()
或forEach()
的好处是不必跟踪索引,而且它们本身就提供了逻辑闭包。