动态信息提取

时间:2018-05-17 13:00:45

标签: javascript

我正在处理从.json文件中提取信息的代码,并将其打印在网站上。我得到了所有但现在我有一个问题,数据只显示1个结果,它为其他信息创建所有框/位置,但只有第一个“框”有信息。

var MyJSON = [{
    "url": 'google.es',
},
{
    "url": 'yahoo.com',
}]

和.json文件:

updateObjProp = (obj, value, propPath) => {
    const [head, ...rest] = propPath.split('.');

    !rest.length
        ? obj[head] = value
        : this.updateObjProp(obj[head], value, rest);
}

const user = {profile: {name: 'foo'}};
updateObjProp(user, 'fooChanged', 'profile.name');

2 个答案:

答案 0 :(得分:1)

问题是你的第一个框是fnc函数改变的唯一元素 - 注意它只使用hl1 id来访问和更改元素,而不是hl2+

我会尝试遵循您原来的方法,以便您更轻松地遵循它。你可能会这样做:

var cajas = 2;

function sm(info) {
    cajas = cajas + 1;
    document.getElementById("inf").innerHTML += (
      '<div id="hl' + cajas + '">' + info.url + '</div>'
    );
}

for (var i = 0; i < MyJSON.length; i++) {
    sm(MyJSON[i]);
}

答案 1 :(得分:0)

阅读所有代码非常困难,但是我已经知道了,你想在你的JSON中添加一些带有url的

元素。

好的,我们有父元素div,id =&#39; inf&#39;,让我们使用javascript函数appendChild添加新元素。

我们将使用document.createElement(&#39; p&#39;)来创建新元素。

这是代码,因为我已经理解了预期的行为。

 var infContainer = document.getElementById('inf');
 var elNumber = 2;
 function agregar_caja() {
    MyJSON.forEach(function(item,i) {
        var newElement = document.createElement('p');
        newElement.innerHTML = item.url;
        newElement.id = 'hl'+elNumber;
        elNumber++;
        infContainer.appendChild(newElement);
    }
)}