javascript - jQuery innerHTML 无法正常工作(!)

标签 javascript jquery

我正在尝试构建一个 <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/

相关文章:

javascript - MooTools 中的滚动事件没有事件对象?

javascript - 如何在 javaScript 中停止间隔动画

javascript - 如何在初始化后在 slick-slider 中添加另一个图像元素

jquery - 热链接图像上有水印吗?

javascript - node-webkit 与 chrome 浏览器中应用程序的性能

javascript - 如何使用 jQuery 通过数据属性查找动态添加的元素?

javascript - 正则表达式匹配单个特殊字符或特定序列

javascript - 内联画廊模式的华丽弹出淡入淡出效果

javascript - 未捕获的类型错误 : Cannot use 'in' operator to search for 'length' in

jQuery/从字符串中获取数字