我有这个:
var output='<span class="price-month">';
for (var i in flexPay.PowerFlexPay) {
output+=flexPay.PowerFlexPay[i].priceMonth;
}
output+='</span>';
document.getElementById('power-FP-month').innerHTML=output;
我真的需要output+='</span>';
吗?我将其删除并添加+ '</span>'
,如下所示:
var output='<span class="price-month">';
for (var i in flexPay.PreferredFlexPay) {
output+=flexPay.PreferredFlexPay[i].priceMonth + '</span>';
}
document.getElementById('preferred-FP-month').innerHTML=output;
它仍然有效。我只是想确保我没有违反任何标准。
答案 0 :(得分:3)
因此,当flexPay.PreferredFlexPay
具有多个属性时,您会多次关闭span
元素并确实&#34;打破标准&#34;。大多数浏览器可能会毫无怨言地吞噬这些混乱,但不是一个好主意。
答案 1 :(得分:1)
是的,您需要这行代码。原因如下:
我将用简单示例解释它:
假设您的flexPay.PowerFlexPay
中有三个元素,每个元素的html为<div>
。
因此,使用第一个代码段,您将获得如下的HTML代码:
<span class="price-month"><div><div><div></span>
这里三个div用闭合的span元素包装,因为在循环结束后添加了span。
使用第二个代码片段,您将获得如下的HTML代码:
<span class="price-month"><div></span><div></span><div></span>
这里为每个div添加一个span,因为在循环中添加了span。
答案 2 :(得分:0)
不,你应该把它留在原地。因为它现在位于for
循环内,所以每次迭代都会输出一个结束</span>
标记。
答案 3 :(得分:0)
您不希望在循环中关闭跨度,或者您不止一个。你的第一个例子是正确的。
答案 4 :(得分:0)
在您的示例中有两种情况,第二种情况是关闭循环内部。如果您有多个flexPay.PowerFlexPay项目,这将多次发生。假设有3个项目,您的输出将是:
<span>... </span></span</span
在你的第一个例子中,它只会在循环完成时添加最终结果,从而导致正确的html输出:
<span>...</span>