jQuery innerHTML无法正常工作(!)

时间:2010-06-08 15:22:39

标签: javascript jquery

我正在尝试构建<a>标记,并将其设置在表格的<td>中。字符串是完美构建的,但是当我使用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("");
...
...

2 个答案:

答案 0 :(得分:7)

您在第一个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不会出于同样的原因。

答案 1 :(得分:0)

尝试tr.cells[9].html(strBuff.join(""))