2010-06-08 51 views
4

我试图构建一个<a>标记并将其设置在表格的<td>中。该字符串完美地构建,但是当我使用jQuery将其设置为innerHTML时,该字符串被破坏。我无法弄清楚为什么会发生这种情况?任何线索?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> 

而下面是我的代码片断..

​​
+2

请注意,您将值分配给innerHTML时不使用jquery - 这只是纯javascript,所以它与Jquery无关。 jquery的方式是: $(tr.cells [9]).html(strBuff.join(“”)); – Razor 2010-06-08 15:27:00

+0

谢谢Razor的回复。大卫建议转义字符串。 $(tr.cells [9]).html(strBuff.join(“”))也适用,如果我正确地转义字符串。 – Kayes 2010-06-08 15:48:51

回答

7

您在第一个结束时终止了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代码将不能工作为了同样的原因。

0

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