首页 > 解决方案 > IE11 中的 javascript 数组未正确处理值

问题描述

我在 IE11 中的 Javascript 数组存在问题,主要是在 for 循环中。

这是代码:

    function onResponseReceived(responseArray) {
      found = true;
      var i;

      for(i in responseArray) {
        var item = responseArray[i];
        if (item.field_number == '5') {
            item.value = intlToUsDate(item.value);
            console.log(item.value);
        }

        var inputSelector = '[name="input_' + item.field_number + '"]';
        var dom_elms = document.querySelectorAll(inputSelector);

        for (var e in dom_elms) {
            var dom_elm = dom_elms[e];
            if (dom_elm.type == 'radio' || dom_elm.type == 'checkbox') {
                if (dom_elm.value == item.value && !dom_elm.checked) {
                    dom_elm.click();
                    continue;
                }
            } else {
                dom_elm.value = item.value;
            }

        }
    }
}

这是使用 console.log 在 IE11 中的输出:

"
i
d
"
:

"
1
8
4
1
"
,

这是使用 Chrome 的相同 Javascript 的输出:

field_number
:
"5"
form_id
:
"10"
id
:
"1839"
is_synced
:
"1"
lead_id
:
"2967"
value
:
"05/08/2018"
__proto__
:
Object

基本上它会正确处理信息。

在 IE11 中,如何让数组成为 Chrome、FF 或 Edge 中的对象?

谢谢你,凯文

标签: javascriptinternet-explorer

解决方案


我找到了解决方案。我不得不添加以下代码:

    var responseArray = JSON.parse(responseArray);

推荐阅读