Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 映射<;td>;使用id属性将元素设置为数组_Jquery_Html_Dom_Html Table - Fatal编程技术网

Jquery 映射<;td>;使用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

我正在尝试将表中的元素映射到数组的元素,以便用户可以编辑内容,查看表中的结果,然后更新数组。我想使用简单的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.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';