如何在javascript中使用jquery在for-loop问题中显示消息 [英] How to show message in for-loop issues in javascript or using jquery

查看:125
本文介绍了如何在javascript中使用jquery在for-loop问题中显示消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试了两天,但还是一无所获。也许有人可以帮助谁在JavaScript循环高度熟练。

我有这样的代码:

  $(function(){
var len = $('#groupContainer> div')。length;
var arr = [];
for = 0; i< len; i ++){

var number = $('#number_'+ [i + 1]);
var date = $('#date_'+ [i + 1]);
var count = i + 1;
var message =;
console.log(number)

var a = number .map(function(){
return this.value;
));

var b = date.map(function(){
return this.value ;
});

var newObj = {number:a [0],date:b [0]}
arr.push(newObj);



var message =;
for(var c = 0; c< arr.length; c ++)
{


(arr [c]中的var d)
{
message + ='Group:'+ [c + 1] +'\\\
';
if( arr [c] .hasOwnProperty(d))
{
if(arr [c] [d] ==)
{

message + = d +'is required!\\\
';
}

}
message = message +\\\
;
}


}
alert(message);
});

以及预期的输出:

所有在组1中的字段填充,组2不显示警告框:

 组2:
数字是必需的!
需要日期!

如果所有字段都没有填满显示:

 第1组,2号码是必需的! 
组1,2需要日期!

如果所有字段填充都不做任何操作。

<这是我的 FIDDLE

解决方案

您的这里的代码太复杂了< a>并且应该被简化。

您需要将消息保存在对象中并稍后循环按顺序显示消息。

  var messages = {}; 
var message =;

(var c = 0; c< arr.length; c ++)
{
var groupMessage = false;
(arr [c] .hasOwnProperty(d))
{
if( arr [c] [d] ==)
{
if(messages [d] == undefined){
messages [d] = {groups:[]};
}
messages [d] .groups.push(c + 1);
}

}
}

var lastgroup =;

(i in messages){
m = messages [i];
if(m.groups.join(,)== lastgroup){
message = message.replace(Group+ m.groups.join(,)+, Group+ m.groups.join(,)+:\\\
);
message + = i +is required!\\\
;
}
else {
message + =Group+ m.groups.join(,)++ i +is required!\\\
;
}
lastgroup = m.groups.join(,);
}

// .....
}


I tried this for almost two days but still nothing. Maybe someone can help who is highly skilled in javascript loops.

I have this code:

$(function(){
 var len = $('#groupContainer > div').length;
 var arr = [];
 for(var i=0; i < len; i++){

    var number = $('#number_' + [i + 1]);
    var date = $('#date_' + [i + 1]);
    var count = i + 1;
    var message ="";
    console.log(number)

    var a = number.map(function(){
        return this.value;
    });

    var b = date.map(function(){
        return this.value;
    });

    var newObj = {number: a[0], date: b[0]}
    arr.push(newObj);

}

var message = "";
 for(var c = 0; c < arr.length; c++)
 {        


    for(var d in arr[c])
    {
        message += 'Group: ' + [c + 1] + '\n';
        if(arr[c].hasOwnProperty(d))
        {      
            if(arr[c][d] == "")
            {

                message +=  d + ' is required!\n';
            }

        }
        message = message + "\n";
    }


 }
 alert(message);
});

And the expected output:

If all the fields in group 1 is filled and group 2 is not show alertbox:

   Group 2:
   Number is required!
   Date is required!

If all field is not filled show:

   Group 1, 2 Number is required!
   Group 1, 2 Date is required!

If all field is filled do nothing.

Here's my FIDDLE

解决方案

Your code here is too much complicated and should be simplified.

You need to save the messages in an object and loop through them later to show the messages in order.

var messages = {};
var message = "";

for(var c = 0; c < arr.length; c++)
{        
    var groupMessage = false;
    for(var d in arr[c])
    {

        if(arr[c].hasOwnProperty(d))
        {      
            if(arr[c][d] == "")
            {
                if(messages[d]==undefined) {
                    messages[d]={groups:[]};
                }
                messages[d].groups.push(c+1);
            }

        }            
    }

    var lastgroup = "";

    for(i in messages) {
      m = messages[i];      
      if(m.groups.join(",")==lastgroup) {
        message = message.replace("Group "+m.groups.join(",")+" ","Group "+m.groups.join(",")+":\n");
        message+=i+" is required!\n";
      }
      else {
          message+="Group "+m.groups.join(",")+" "+i+" is required!\n";
      }
      lastgroup = m.groups.join(",");
    }

  // .....
}

这篇关于如何在javascript中使用jquery在for-loop问题中显示消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆