以下是我尝试的两个代码:
$( "<li class='item' id='item' name='"+infoitem+"'>"+ title +"</li>" ).appendTo( "#sortable" );
$( "<li class='item' id='item' name='"+infoitem+"'/>").html(title).appendTo( "#sortable" );
包含撇号的标题会引发错误并且会破坏代码...
如何使用\'过滤文本,然后将其重新添加为带有撇号的可接受的html?
任何建议都会很棒。
编辑:
我有一个工作的例子,说明为什么它不起作用 http://jsfiddle.net/cowmoohard/bxxmhe03/4/
在原帖中,我忘了提到appendTo在一个函数中,它需要一个包含空格的字符串。请参阅上面的示例。只需用'在字符串中编辑它然后它就会停止工作。
答案 0 :(得分:1)
尝试使用&#39;用于javascript和强制使用&#34;对于HTML。它看起来像:
$('<li class="item" id="item" name="' + infoitem + '">' + title + '</li>').appendTo('#sortable');
$('<li class="item" id="item" name="' + infoitem + '"/>').html(title).appendTo('#sortable');
EDIT1:
var addedTitle="I'am a supe long string".replace('\'', ''');
这是你的提琴手代码。
Edit2:如果你需要替换多件事:
String.prototype.replaceAll = function (searchvalue, newvalue) {
return this.split(searchvalue).join(newvalue);
};
答案 1 :(得分:1)
你的小提琴阐明了实际问题:
content = "<input type='button' value='Add' onclick='addme(\"" + addedTitle + "\")' />"
document.getElementById("display").innerHTML = content;
问题是上面的代码会生成以下内容:
<input type='button' value='Add' onclick='addme("some'string")' />
你会注意到你的onclick
内有单引号的单引号。这就是打破。您可以使用\
转义单引号。
然而,更好的方法是摆脱内联onclick
并以这种方式执行:
var input = $("<input type='button' value='Add'/>").click(function(){
addme(addedTitle);
});
$("#display").append(input);
答案 2 :(得分:0)
试试这个:)
$( "#sortable" ).append("<li class='item' id='item' name='"+infoitem+"'>"+ title +"</li>");