JavaScript如何使Html表可编辑
我有一个使用JavaScript从.csv文件创建表的功能。我想使表格的最后一列可编辑。正在生成表的函数的一部分是JavaScript如何使Html表可编辑,javascript,Javascript,我有一个使用JavaScript从.csv文件创建表的功能。我想使表格的最后一列可编辑。正在生成表的函数的一部分是 for (var i = 0; i < CSVLines.length; i++) { OutputTableRows += "<tr>"; var CSVValues = CSVLines[i].split(","); for (var j = 0; j < CSVValues.length; j++) { Outp
for (var i = 0; i < CSVLines.length; i++) {
OutputTableRows += "<tr>";
var CSVValues = CSVLines[i].split(",");
for (var j = 0; j < CSVValues.length; j++) {
OutputTableRows += "<td>" + "<p>" + CSVValues[j] + "<p>" + "</td>";
}
OutputTableRows += "</tr>";
}
for(变量i=0;i
我试过了
OutputTableRows += "<td>" + "<p contenteditable="true">" + CSVValues[j] + "<p>" + "</td>";
OutputTableRows+=”+”“+csv值[j]+”“+”;
但它不起作用乍一看,我建议:
OutputTableRows += "<td>" + "<p" + (j === (CSVValues.length - 1) ? " contentEditable" : "") + ">" + CSVValues[j] + "</p>" +"</td>";
OutputTableRows+=''++''+csv值[j]+''“+”;
当然,相关部分是:
"<p" + (j === (CSVValues.length - 1) ? " contentEditable" : "") + ">"
“”
如果j
等于CSVValues
的长度减1,那么可以合理地假设这必须是for
循环的最后一次迭代,因此这是应该具有contentEditable
属性的行,否则不应该(并且必须是循环的早期迭代)
另外,请注意更改的
(来自原始
),它关闭了已打开的
,而不是创建新的同级段落元素
参考资料:
if(j == CSVValues.length-1){
tableRow = '<td><input type="text" value="VALUE"/></td>';
tableRow = tableRow.replace('VALUE',CSVValues[j]);
OutputTableRows += tableRow;
}
else{
OutputTableRows += "<td>" + "<p>" + CSVValues[j] + "<p>" + "</td>";
}
if(j==CSVValues.length-1){
tableRow='';
tableRow=tableRow.replace('VALUE',csv值[j]);
OutputTableRows+=tableRow;
}
否则{
输出行+=“”+”“+CSV值[j]+”“+”;
}
很抱歉,我忘了提及我正在使用VS 2013开发Windows 8.1应用程序,在使用您的答案时出现以下异常。0x800c001c-JavaScript运行时错误:无法添加动态内容。脚本试图注入以前动态修改的可能不安全的动态内容或元素。例如,使用innerHTML属性添加脚本或格式错误的HTML将生成此异常。使用toStaticHTML方法过滤动态内容,或使用createElement等方法显式创建元素和属性。