我在for循环
中的ul标签中添加li标签时遇到了麻烦这是我的json:
android.view.InflateException: Binary XML file line #35: Error inflating class null
这是我的循环代码的js:
{
"pageArr": [
{"curve_main": "Curve-1",
"curve_sub": [
{"curve_name": "A-1",
"curve_rel": [
"Conrway-1",
"Conrway-2",
"Conrway-3",
"Conrway-4",
"Conrway-5",
"Conrway-6"
]
}
]
}
]
}
});
我正在尝试将“curve_rel”数组渲染到“li”标签中并将它们包装在“ul”标签中。我已设法在li标签中呈现它们,如何将它们包装在 for (i = 0; i < data.pageArr.length; i++) {
container.append("<h1>" + data.pageArr[i].curve_main + "</h1>");
for (x = 0; x < data.pageArr[i].curve_sub.length; x++) {
container.append("<h2>" + data.pageArr[i].curve_sub[x].curve_name + "</h2>");
for (y = 0; y < data.pageArr[i].curve_sub[x].curve_rel.length; y++) {
container.append("<li>" + data.pageArr[i].curve_sub[x].curve_rel[y] + "</li>");
}
}
}
});
。
我现在的forloop正在渲染到
<ul>
由于 贾斯汀
答案 0 :(得分:0)
您可以检查索引以确定何时附加ul
标记。
如果索引为0,请添加开头<ul>
。如果索引等于数组的(长度+ 1)(长度不是像你的循环一样从0开始),那么添加结束</ul>
在for
循环中:
container.append("<h2>" + data.pageArr[i].curve_sub[x].curve_name + "</h2>");
if (x === 0) {
container.append('<ul>');
}
// add your <li> tags here
if (x + 1 === data.pageArr[i].curve_sub.length) {
container.append('</ul>');
}
您可以通过将+ 1
循环更改为:
for
计算
for (x = 1; x <= data.pageArr[i].curve_sub.length; ++x)
在那个例子中,代码是:
container.append("<h2>" + data.pageArr[i].curve_sub[x].curve_name + "</h2>");
if (x === 1) {
container.append('<ul>');
}
// add your <li> tags here
if (x === data.pageArr[i].curve_sub.length) {
container.append('</ul>');
}
答案 1 :(得分:0)
假设您只想在容器中添加字符串,那么您可以在&amp;之前添加ul。在你的内循环之后:
for (x = 0; x < data.pageArr[i].curve_sub.length; x++) {
container.append("<h2>" + data.pageArr[i].curve_sub[x].curve_name + "</h2>");
container.append('<ul>');
for (y = 0; y < data.pageArr[i].curve_sub[x].curve_rel.length; y++) {
container.append("<li>" + data.pageArr[i].curve_sub[x].curve_rel[y] + "</li>");
}
container.append('</ul>');
}
但是,这些代码都不会实际向DOM添加任何内容。如果你想这样做,那么你需要使用document.createElement()。像这样:
for (i = 0; i < data.pageArr.length; i++) {
var h1 = document.createElement('h1');
container.append(h1);
h1.append(data.pageArr[i].curve_main);
for (x = 0; x < data.pageArr[i].curve_sub.length; x++) {
var h2 = document.createElement('h2');
container.append(h2);
h2.append(data.pageArr[i].curve_sub[x].curve_name);
var ul = document.createElement('ul');
container.append(ul);
for (y = 0; y < data.pageArr[i].curve_sub[x].curve_rel.length; y++) {
var li = document.createElement('li');
li.append(data.pageArr[i].curve_sub[x].curve_rel[y]);
ul.append(li);
}
}
}
答案 2 :(得分:-1)
只是逃避引号
Console