javascript - jQuery:带有单引号的 td 内容在传递给模态时被 chop

标签 javascript jquery html

我有一个带有动态 HTML 表格的页面。其中一列称为“itemName”,包含也可以包含引号的文本。

示例:

<td class='itemName'>Collector's Edition</td>

表格有一些按钮,用于创建模式并将一些表格内容动态传递到模式。

示例:

<input type='text' class='form-control' id='itemName' value='" + $(this).closest('tr').find('.itemName').text() + "' />

一切都按预期进行。我唯一的问题是,每当 td 内容包含单引号时,传递给模式的文本就会被 chop ,例如在上面的示例中,它只会传递 Collector。

如何在 jQuery 中避免这种情况?

最佳答案

尝试解决这个问题后,我发现当你这样做时:

$('span').after("<input type='text' value='"+$("span").text()+"'/>")

由于span的文本有单引号,所以它认为它是代码的结束并在那里结束它。

但是如果我们这样写,它就可以工作:

$('span').after('<input type="text" value="'+$("span").text()+'"/>')

fiddle 样本:

http://jsfiddle.net/arjpdkv1/1/

更新:

如果文本包含双引号,那么此代码也会失败,更好的方法是以这种方式创建元素,而不是通过附加字符串 html,现在范围文本包含单引号或双引号并不重要:

$('span').after($('<input/>').attr({
type: 'text',
value: $("span").text()
}));

DEMO FIDDLE

关于javascript - jQuery:带有单引号的 td 内容在传递给模态时被 chop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25689869/

相关文章:

jquery - 以编程方式更改 jQuery 选择选项 - 不起作用

javascript - jqueryUI 效果无法在表单元素上正常工作

javascript - JQuery: 任何浏览 div 插件

javascript - 无需授权即可从 firebase 获取数据库数据到我的博客

javascript - 不用JS改变背景颜色

javascript - 尝试制作一个在结果为负数时显示红色文本的计算器

javascript - 对InfoWindow使用mouseover和mouseout会导致InfoWindow闪烁并连续触发mouseover和mouseout事件

javascript - 将 JavaScript 连接到 MySQL 数据库

javascript - 将 iframe 附加到 div 而不刷新

javascript - 背景图像样式在 HTML header 中不起作用