我已经接管了一个网站,并且有很多javascript看起来像这样;
function BuildHTMLString(item)
{
return "<input name='Text' Type='text' value='" + item+ "' />";
}
这些字符串随后用于发布表单。我意识到,如果变量项中有撇号,那么整个事情就会崩溃。
以编程方式填充文本框的建议方法是什么,这些文本框将成为表单帖子的一部分,而该帖子不会在其中创建包含撇号的名称的问题。
答案 0 :(得分:2)
您可以使用document.createElement
以编程方式创建元素,然后使用outerHTML
属性:
function buildHtmlString(item) {
var element = document.createElement("input");
element.setAttribute("name", "Text");
element.setAttribute("type", "text");
element.setAttribute("value", item);
return element.outerHTML;
}
在Chrome上,buildHtmlString("this has a quote \"");
给了我:
<input name="Text" type="text" value="this has a quote "">
我注意到您添加了jquery
标记。所以你也可以用jQuery很容易地做到这一点:
function buildHtmlString(item) {
return jQuery("<input>").attr("name", "Text")
.attr("type", "text")
.attr("value", item)
.get(0).outerHTML;
}
答案 1 :(得分:0)
当您使用jQuery时,您可以使用它来创建元素:
var $input = $('<input>')
.attr('name', 'Text')
.attr('type', 'text')
.attr('value', item);
现在您有一个可以插入DOM或进一步操作的对象。
如果您希望HTML除了插入DOM之外的其他任何内容,您可以使用$input.get(0).outerHTML
来获取它。