2012-10-14 21 views
1

如何在追加前转义?以下错误地追加追加和转义

'<a here."="" goes="" string"="" title="Some " href="#">Hello</a>' 
在代码

$(function(){ 
    var t='Some "string" goes here.'; 
    var jqueryObj=$('#elem'); 
    jqueryObj.append('<a href="#" title="'+t+'">Hello</a>'); 
}); 

修改后的代码后编辑

var $accounts=$('#accountList'); 
$accounts.find('li.accountList').remove(); 
for (var i = 1; i < data.o.a.length; i++) { 
    $accounts.append('<li class="item displayAccount">' 
    +'<input type="checkbox" checked="checked" class="cb" name="accounts[]" value="'+i+'" />' 
    +'<span class="name">'+data.o.a[i].name 
     +((data.o.a[i].e.length)?' <a class="displayError" href="#" title="'+escape(mkList(data.o.a[i].e))+'">Error</a>':null) 
    +'</span>' 
    +'</li>'); 
} 
if(data.o.a[0].c.length) {$accounts.append('<li class="item displayAccount"><input type="checkbox" disabled="disabled" value="0"><span class="name">UNASSIGNED</span></li>');} 
$accounts.find('a.displayError').displayError(); 

回答

2

我想我会提供一个不同的答案比搅拌机,以防万一你不想要使用该方法。

function escapeQuotes(str){ 
    return str.replace(/"/g, '&quot;'); 
} 

将用&quot;替换双引号。

+0

我错过了什么吗? http://jsfiddle.net/ER89k/ – user1032531

+0

正如我看到我上面的jsfiddle,它不能完全按照你的指示工作。我尝试过多次类似的迭代,但没有成功。有什么想法吗? – user1032531

+0

啊哈!你几乎没有错,但是,太多的报价。请更新您的答案,以便我可以选择。谢谢!函数escapeQuotes(str){return str.replace(/“/ g,'"');} – user1032531

6

jQuery有用于安全地创建元素nice syntax

$('<a>', { 
    href: '#', 
    title: t, 
    text: 'Hello' // Replace `text` with `html` if you need to. 
}).appendTo(jqueryObj); 

你的代码依赖于字符串很多,所以我做了我所能做的,但它可以作出更漂亮:

for (var i = 1; i < data.o.a.length; i++) { 
    var $li = $('<li class="item displayAccount"></li>'); 
    var $input = $('<input type="checkbox" checked="checked" class="cb" name="accounts[]" />').val(i).appendTo($li); 
    var $span = $('<span class="name"></span>').appendTo($li); 

    if (data.o.a[i].e.length) { 
     $('<a class="displayError" href="#">Error</a>').attr('title', mkList(data.o.a[i].e)).appendTo($span); 
    } 

    $li.appendTo($accounts); 
} 
+0

有趣的方法。让我玩一下,看看它是否适合我。谢谢 – user1032531

+0

我刚刚编辑了我的原始帖子以显示实际的javascript。对不起,我原本以为简单就不会改变推荐的方法。我正在努力如何应用您的解决方案。再一次,我的不好的一次没有给出所有的要求。谢谢 – user1032531

+0

@ user1032531:看我的编辑。我没有测试它,但它可能工作。 – Blender