javascript - 在函数之后用字符串转义jquery中的引号

标签 javascript jquery html

有点难以解释,我正在使用 .after() jquery 函数将 html 放入 div 容器中,然后在其中一个标记中有一个 onclick 属性来调用传入字符串的函数(javascript变量),但此变量需要用引号引起来才能使 javascript 函数正常工作:

请注意,after 函数似乎将 html 属性的单引号替换为双引号?

$("#outputsContainer tr:last").after(
    "<tr>\
       <td>"+value.name+"</td>\
       <td>"+value.status+"</td>\
       <td>\
          <a href='" + value.delete + "' onclick='" + myfunction(value.status) + "'>Delete</a>\
          <a href='" + value.download + "'>Download</a>\
       </td>\
    </tr>");

我已经设法在函数中获取变量值,但似乎无法轻易地在它周围放置引号

输出:

<a href="/item/4/download" onclick="myfunction(complete)">Download</a>

我想要的(注意 complete 周围的引号):

<a href="/item/4/download" onclick="myfunction('complete')">Download</a>

感谢帮助,谢谢!

最佳答案

尝试在 JavaScript 中将一个 javascript 字符串连接成一个 HTML 字符串只会给您一个难以维护的大字符串。

分解问题。使用现有的 DOM 功能来帮助您。

var row = jQuery('<tr>');

var name_cell = jQuery('<td>');
name_cell.text(value.name);
row.append(name_cell);

var status_cell = jQuery('<td>');
name_cell.text(value.status);
row.append(status_cell);

var links_cell = jQuery('<td>');

var delete_link = jQuery('<a>');
delete_link.attr('href', value.delete);
delete_link.on('click', function () {
    myfunction(value.status);
});
delete_link.text('Delete');
links_cell.append(delete_link);

var download_link = jQuery('<a>');
download_link.attr('href', value.download);
download_link.text('Download');
links_cell.append(download_link);

$("#outputsContainer tr:last").after(row);

关于javascript - 在函数之后用字符串转义jquery中的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21629515/

相关文章:

javascript - 删除空样式属性

javascript - 聚焦选项卡索引中的下一个元素

jquery - 淡出固定元素。

JQuery 对话框自动滚动到底部

javascript - 从服务器上的 html 发送数据 (node.js)

javascript - 提取 JSON 数据并嵌入 HTML

html - 如何在 flexbox 中居中文本?

javascript - 从对象创建数组 - ES6

javascript - 当 React 状态发生变化时,如何在悬停时仅重新渲染一个组件

javascript - 如何在循环运行时强制 Jquery/JS 替换变量?