使用id属性将元素的内容映射到数组

时间:2014-01-25 20:32:58

标签: jquery html dom html-table

我正在尝试将表中的元素映射到数组的元素,以便用户可以编辑内容,查看表中的结果 - 并更新数组。我想使用简单数组[row] [col]表示法来访问数组。所以我将id分配给id =“0-0”到id =“99-9”的每个元素。我使用的代码如下:

r=0;c=4;
rowStr+= "<td id='"+r+"-"+c+"'></td>";
// HTML shows: <td id="0-4" </td> etc.

这很好用。我可以在创建它时将id记录到我的控制台,当我在调试器中检查HTML时,它会显示在页面中,如上面的注释所示。

但无论我做什么,我都不能使用id来访问/编辑单元格内容。我试过jQuery:

var idStr="#id"+r+"-"+c; $(idStr).text("content");

。 。和HTML Dom方法:

document.getElementById("0-4").innerHTML="content";   

在这两种情况下代码都会停止,我收到调试器错误:

Uncaught Error: Syntax error, unrecognized expression: '#0-4' 

提前感谢任何可以告诉我这里发生了什么的人。

1 个答案:

答案 0 :(得分:0)

我建议使用原生HTMLTable API。它允许您通过索引引用表格单元格和行。例如,您可以访问第三行的第二个TD元素

table.rows[2].cells[1].innerHTML = 'New content'; // index starts from 0

在这种情况下,您不需要一堆ID。

您甚至可以创建一个非常简单的辅助函数来通过索引选择TD:

function getCell(row, cell) {
    return tableElement.rows[row].cells[cell];
}

getCell(2, 3).innerHTML = 'Cell 4 in third row';

演示:http://jsfiddle.net/mQY5Z/