为什么我的循环只返回HTML集合的第一个值

时间:2018-04-26 11:14:27

标签: javascript

尽管研究并尝试了任何数量的排列,但我只是从循环中获得了第一个输入。

var matches = []; salesorderSearchObj.run().each(function(result){ var objRecord = record.load({ type: record.Type.SALES_ORDER, id: result.id, isDynamic: true, }); var push = resultToObject(result); push.addressid = objRecord.getValue({fieldId:'shipaddresslist'}); log.debug("Result:",push); matches.push(push); return true; }); dev没有显示任何错误。

任何帮助都非常感激。

Chrome

4 个答案:

答案 0 :(得分:2)

因为你覆盖循环中的元素。 使用这样的东西:

var userinput = '';
for (i=0;i<j.length; i++){
  userinput += document.getElementsByClassName('usin')[i].value;
}
document.getElementById("showresults").innerHTML=userinput;

答案 1 :(得分:0)

你必须在循环中设置document.getElementById("showresults").innerHTML=userinput

for (i=0;i<j.length; i++){
var userinput = document.getElementsByClassName('usin')[i].value;    
 document.getElementById("showresults").innerHTML=userinput;     
}

答案 2 :(得分:0)

如果您希望使用类 usin 显示每个元素的值,则需要在循环中追加它们的值。 像这样:

function DisplayInputValues() {
    //var j is the number of fields generated dynamically as required by user

    var j = document.getElementById('fields').value;
    var i;
    var userinput = [];

    for (i = 0; i < j.length; i++) {
        userinput.push(
            document.getElementsByClassName('usin')[i].value
        );
    }

    document.getElementById("showresults").innerHTML = userinput.join(', ');
}

答案 3 :(得分:0)

我猜j不是数组。你不必做j.length。只需使用j。 你的价值J是一个字符串。 它被算作&#​​34; 6&#34;或&#34; 42&#34;。如果你问这个长度,它将返回1或2.然后你将循环那些时间。试试这个:Weapon