Jquery 映射<;td>;使用id属性将元素设置为数组
我正在尝试将表中的元素映射到数组的元素,以便用户可以编辑内容,查看表中的结果,然后更新数组。我想使用简单的array[row][col]符号来访问数组。因此,我为id=“0-0”到id=“99-9”的每个元素分配了id。我使用的代码如下:Jquery 映射<;td>;使用id属性将元素设置为数组,jquery,html,dom,html-table,Jquery,Html,Dom,Html Table,我正在尝试将表中的元素映射到数组的元素,以便用户可以编辑内容,查看表中的结果,然后更新数组。我想使用简单的array[row][col]符号来访问数组。因此,我为id=“0-0”到id=“99-9”的每个元素分配了id。我使用的代码如下: r=0;c=4; rowStr+= "<td id='"+r+"-"+c+"'></td>"; // HTML shows: <td id="0-4" </td> etc. 。HTML和Dom方法: document
r=0;c=4;
rowStr+= "<td id='"+r+"-"+c+"'></td>";
// HTML shows: <td id="0-4" </td> etc.
。HTML和Dom方法:
document.getElementById("0-4").innerHTML="content";
在这两种情况下,代码都会停止,并出现调试器错误:
Uncaught Error: Syntax error, unrecognized expression: '#0-4'
提前感谢所有能告诉我这里发生了什么的人。我建议使用原生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';
演示:我对此不确定,但我认为第一个字符是数字可能有问题。尝试使用前缀。
id
不能以数字开头。另外,在jQuery中,选择器字符串中不需要单引号。IDs可以在HTML5中以数字开头。您可以创建一个JSFIDLE来显示问题吗?我使用您在此处提供的建议重新编写了代码,现在可以访问该表了。此外,我不必为元素分配id。我怀疑这会更快,因为不需要调用任何jQuery函数。令我惊讶的是,在我运行的任何搜索中,我从未见过这种方法。谢谢你告诉我这个重要的技巧。我不确定如果我“接受”一个答案意味着什么,但我看到一些人明确地这样做。所以,是的,我接受这个伟大的答案。@Banjobum要“接受”一个答案,你可以点击它旁边的复选标记。这向将来遇到你的问题的任何人表明,这个答案帮助你解决了问题。它还将此答案放在答案列表的顶部,这样人们可以更快地找到它。尽快谢谢!我在某处找了个扣子。谢谢你的建议。这有帮助。
function getCell(row, cell) {
return tableElement.rows[row].cells[cell];
}
getCell(2, 3).innerHTML = 'Cell 4 in third row';