我正在处理从.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');
答案 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);
}
)}