撇号与appendTo的问题

时间:2015-03-11 15:09:57

标签: javascript apostrophe appendto

以下是我尝试的两个代码:

$( "<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在一个函数中,它需要一个包含空格的字符串。请参阅上面的示例。只需用'在字符串中编辑它然后它就会停止工作。

3 个答案:

答案 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('\'', '&#39;');

这是你的提琴手代码。

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);

http://jsfiddle.net/bxxmhe03/6/

答案 2 :(得分:0)

试试这个:)

   $( "#sortable" ).append("<li class='item' id='item' name='"+infoitem+"'>"+ title +"</li>");