我有一个带有动态 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()
}));
关于javascript - jQuery:带有单引号的 td 内容在传递给模态时被 chop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25689869/