在JavaScript函数中为td分配ID

时间:2015-07-25 10:25:17

标签: javascript

我已将xml文件转换为HTML表格。我使用的功能在这里:

document.write("<table><tr><td>ALPHA</td><td>BRAVO</td><td>CHARLIE</td><td>DELTA</td><td>
ECHO</td><td>FOXTROT</td><td>GOLF</td><td>HOTEL</td></tr>");

var x = xmlDoc.getElementsByTagName("List");
for (i = 0; i < x.length; i++)
{
document.write("<tr><td>");
document.write(i) //populates the ALPHA column
document.write("</td><td>");
document.write(x[i].getElementsByTagName("BRAVOITEMS")[0].childNodes[0].nodeValue);
document.write("</td><td>")
document.write(x[i].getElementsByTagName("CHARLIEITEMS")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("DELTAITEMS")[0].childNodes[0].nodeValue);
document.write("</td><td></td><td>");
document.write(x[i].getElementsByTagName("FOXTROTITEMS")[0].childNodes[0].nodeValue);
document.write("</td><td></td><td></td></tr>");
}
 document.write("</table>")  

该表格准确显示了我想要的内容,我计划稍后添加ECHOITEMS,GOLFITEMS和HOTELITEMS。

我的问题是,为了进一步发展,我需要为上面的每个td分配ID,所以我可以从表中提取数据。我能够为普通的HTML td分配一个ID,但我在上面的JavaScript代码中苦苦挣扎。我需要为每个td添加一个ID,其中包含一个短字符串,后跟i号。例如,使用上面的前几行代码:

var x = xmlDoc.getElementsByTagName("List");
for (i = 0; i < x.length; i++)
{
document.write("<tr id='tdalpha'+ i><td>");
document.write(i)
document.write("</td><td id='tdbravo' + i>");
document.write(x[i].getElementsByTagName("BRAVOITEMS")[0].childNodes[0].nodeValue);    

等。当我尝试时显然语法不正确:

var test = document.getElementById('tdalpha24')
document.write(test)

我收到错误消息。

有关如何正确执行此操作的任何建议吗?!

2 个答案:

答案 0 :(得分:2)

你可以这样做 -

for (i = 0; i < x.length; i++)
{
document.write('<tr id="tdalpha'+i'"><td>');
document.write(i)
document.write('</td><td id="tdbravo'+i+'">');
document.write(x[i].getElementsByTagName("BRAVOITEMS")[0].childNodes[0].nodeValue);
.....

答案 1 :(得分:1)

几乎所有人都注意到:&#34;不要使用document.write&#34;。在大多数情况下,它被认为是糟糕的技术。 如果您仍想使用它,请创建一个大字符串并仅使用document.write一次。它会提高性能。就像这样:

var str = '<table><tr><td>ALPHA</td><td>BRAVO</td><td>CHARLIE</td><td>DELTA</td><td>ECHO</td><td>FOXTROT</td><td>GOLF</td><td>HOTEL</td></tr>';
for (var i = 0; i < x.length; i++) {
    str += '<tr id="tdalpha'+i'"><td>';
    str += i;
    str += '</td><td id="tdbravo'+i+'">';
    str += x[i].getElementsByTagName("BRAVOITEMS")[0].childNodes[0].nodeValue);
    str += '</td><td>';
    str += x[i].getElementsByTagName("CHARLIEITEMS")   [0].childNodes[0].nodeValue;
    str += '</td><td>';
    str += x[i].getElementsByTagName("DELTAITEMS")[0].childNodes[0].nodeValue;
    str += '</td><td></td><td>';
    str += x[i].getElementsByTagName("FOXTROTITEMS")[0].childNodes[0].nodeValue;
    str += "</td><td></td><td></td></tr>";
}
str += '</table>';
document.write(str);

PS和你的&#39;我&#39;变量对我来说是全球性的。