我真的需要一行JS代码吗?

时间:2014-10-23 23:53:25

标签: javascript syntax

我有这个:

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;

它仍然有效。我只是想确保我没有违反任何标准。

5 个答案:

答案 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>