我正在尝试根据他们的ID添加TD元素的值。要做到这一点,我试图通过if语句传递一系列id,见下文;
var pricing = 0;
var extraLeg = 9.99;
var standardSeat = 4.99;
var upFront = 9.99;
var extraLeg1 = 13.99;
var tds = document.getElementsByTagName("td");
for (var T = 0; T<tds.length; T++)
{
if(tds[T].id == "_1a","_1f")
{
pricing = extraLeg1;
}
if(tds[T].id == "_2a","_6f")
{
pricing = upFront;
}
if(tds[T].id == "_7a","_11f")
{
pricing = standardSeat;
}
if(tds[T].id == "_12a","_13f")
{
pricing = extraLeg;
}
if(tds[T].id == "_13a","_23f")
{
pricing = standardSeat;
}
}
表格的每一行由7个td元素组成;
&#34; _1a&#34;,&#34; _1b&#34;,&#34; _1c&#34;,&#34;过道编号&#34;,&#34; _1d&#34;, &#34; _1e&#34;&#34; _1f&#34;
然而,当我尝试这个时,点击的第一个元素设置了所有其他元素的价格,尽管有for循环。谁能告诉我如何解决这个问题,以便为td分配特定值?
提前致谢
答案 0 :(得分:1)
您进行的比较不正确。
应该是这样的:
if(tds[T].id == "_13a" || tds[T].id == "_23f")
在您的代码中,表达式tds[T].id == "_13a","_23f"
的计算结果为&#34; _23f&#34;由于逗号,因为它变得真实,所有if条件都会被执行。
您可以在控制台中查看此内容:console.log((2 == 3, "_23f"));
也就是说,您应该考虑使用Switch块来更好地呈现代码并使未来的更改更容易。
var pricing = 0;
var extraLeg = 9.99;
var standardSeat = 4.99;
var upFront = 9.99;
var extraLeg1 = 13.99;
var tds = document.getElementsByTagName("td");
for (var T = 0; T<tds.length; T++)
{
switch (tds[T].id) {
case "_1a":
case "_1f":
pricing = extraLeg1;
break;
case "_2a":
case "_6f":
pricing = upFront;
break;
case "_7a":
case "_11f":
pricing = standardSeat;
break;
case "_12a":
case "_13f":
pricing = extraLeg;
break;
case "_13a":
case "_23f":
pricing = standardSeat;
break;
}
}
编辑:如果你想添加更多像&#34; _1b&#34;,&#34; _1c&#34;然后,无论您的定价是相同的,您都可以将案例联合起来。例如:
switch (tds[T].id) {
case "_1a":
case "_1b":
case "_1c":
case "_1d":
case "_1e":
case "_1f":
pricing = extraLeg1;
break;
case "_2a":
case "_6f":
pricing = upFront;
break;
case "_12a":
case "_13f":
pricing = extraLeg;
break;
case "_7a":
case "_11f":
case "_13a":
case "_23f":
pricing = standardSeat;
break;
}