JQuery循环数组不会返回正确的值

时间:2017-07-16 15:04:14

标签: javascript jquery arrays

我有输入表单,我在数组中有错误文本,我循环通过它来分配输入错误文本字段,但我的问题是,如果错误例如在最后一个输入它显示第一个数组选项值不应该是最后一个。代码如下:无法访问html。

例如,如果第一个fiel你的名字已填满,我没有错误信息,而不是“你的名字是什么?”显示在你工作输入的地方而不是“你为谁工作?”错误消息,如果所有输入都为空,则可以正常工作

var arr = [ "What's your name?", "Who do you work for?", "Most convenient 
phone number to call you on:", "Best email address to contact you on:", 
"Tell us what you'd like to know about:"];

    // setting the interval to check that the elements displayed as needed
    var timer = setInterval(function () {
        for (var i=0, l=arr.length; i<l; i++) {             
            // i believe the below line has the issue  
            (jQuery('.validation_message:eq('+[i]+')').text(arr[i])); 

        }    
    }, 500)

2 个答案:

答案 0 :(得分:2)

如果您觉得问题(可能)与该行有关,那么如何引用针对.validation_message类的jQuery dom对象,然后使用eq函数?

   var timer = setInterval(function () {
        var validationMsgDom = jQuery('.validation_message');
        for (var i=0, l=arr.length; i<l; i++) {             
            validationMsgDom.eq(i).text(arr[i]); 
        }    
   }, 500)

答案 1 :(得分:1)

对不起是我的错误,当我通过eq()选择时,如果错误没有出现div没有创建,那么我所做的就是添加了父div id,而不是以下所有代码:

            jQuery('.gfield_contains_required').each(function(idx) {
            jQuery(this).attr('id', 'a' + idx);
            });

            (jQuery('#a' + i + ' .validation_message').text(arr[i]));