我正在尝试构建一个 <a>
标记并将其设置为 <td>
一张 table 。该字符串是完美构建的,但是当我使用 jQuery 将其设置为 innerHTML 时,该字符串被破坏了。我不明白为什么会这样?有什么线索吗?
这是我要在 <td>
中设置的字符串:
<a onclick='return EditIssueItemBatch('1c1e27a2-beac-4772-a26f-6a7e05529a65', '498ba483-ca06-4b23-b3a9-0085e4760ff1')'>Edit</a>
但这是设置为 innerHTML 后的样子:
<A onclick="return EditIssueItemBatch(" ?498ba483-ca06-4b23-b3a9-0085e4760ff1?)? 1c1e27a2-beac-4772-a26f-6a7e05529a65?,>Edit</A>
下面是我的代码片段..
var tr = $("#itemIssueBatchListTable > tbody:last").children()[data.Index + 1];
...
...
var strBuff = [];
strBuff.push("<a onclick='return EditIssueItemBatch('");
strBuff.push(data.ItemIssueBatch.ItemCode_FK);
strBuff.push("', '");
strBuff.push(data.ItemIssueBatch.StockDetCode_FK);
strBuff.push("')'>Edit</a>");
tr.cells[9].innerHTML = strBuff.join("");
...
...
最佳答案
您在第一个 strBuff.push
调用结束时终止了您的 onclick 属性,方法是使用单引号将属性值和它的内容括起来 - 您必须混合引号:
var strBuff = [];
strBuff.push("<a onclick=\"return EditIssueItemBatch('");
strBuff.push(data.ItemIssueBatch.ItemCode_FK);
strBuff.push("', '");
strBuff.push(data.ItemIssueBatch.StockDetCode_FK);
strBuff.push("')\">Edit</a>");
tr.cells[9].innerHTML = strBuff.join("");
事实上,出于同样的原因,您在问题中写出的“所需”HTML 也不起作用。
关于javascript - jQuery innerHTML 无法正常工作(!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998721/