2011-09-06 57 views
2

我如何在字符串中包含引号?我想要做这样的事情:如何包含嵌套报价HTML?

var stringvariable; 
$('#somediv').append('<a href id="someid" + onclick="doSomething("'+stringvariable+'")> MyLink"+</a>'); 

问题必须做有以下部分:因为我需要能够做到 onclick="doSomething("'+stringvariable+'")

如何允许嵌套双引号: onclick="doSomething("stringvalue")"

回答

1

改为使用单个qoutes。

onclick="doSomething('stringvalue')" 
+0

他不能没有逃脱他们,因为原始字符串被括在单引号内。 – Matt

6

您可以用反斜杠\转义字符串中的引号:

var stringvariable; 
$('#somediv').append('<a href id="someid" + onclick="doSomething(\''+stringvariable+'\')> MyLink"+</a>'); 
+0

+1用于解释\的功能 – Eonasdan

0

JavaScript使用两种'"作为字符串分隔符所以用你的优势。

onclick="doSomething('value');" 
1

如果你使用jQuery,在整个使用它。下面会更好,更易于维护:

var $a = jQuery("<a></a>") 
    .attr("id", "someid") 
    .attr("href", "http://example.com") 
    .text("My Link") 
    .click(function() { 
    doSomething("stringvalue"); 
}); 
jQuery("#somediv").append($a); 
0

可以使用

onclick="doSomething(\"stringvalue\")"; 
2

你可以使用转义符,以做到这一点,但对于易读性,我建议这样做:

$('#somediv') 
    .append('<a href id="someid">MyLink</a>') 
    .click(function() { 
     doSomething(stringvariable); 
    }); 
0

这种替代方法怎么样?将完成你想要做的事情,并应该有希望证明更具可读性:

var stringVariable = "foo"; 

$('<a/>', 
    { id: "someid", 
     text: "MyLink" 
    } 
).click(function() { doSomething(stringVariable) }) 
    .appendTo("#somediv");