Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环的jQuery返回除第一个字符外的未定义字符_Javascript_Jquery_Html - Fatal编程技术网

Javascript 循环的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

我试图弄清楚为什么我的for循环返回为“未定义”,除了第一个字符。我尝试了很多不同的方法,包括.each()和$.each()jQuery方法,结果都是一样的。我感谢你事先的帮助

$(“.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()
的好处是不必跟踪索引,而且它们本身就提供了逻辑闭包。