2012-07-23 34 views
3

内引用,我有以下的jQuery代码:jQuery的变量,报价

$(".container").append("<a href='javascript:void(0)'onClick='showField('"+data.name+"','"+data.text+"');'>Edit</a>"); 

这是输出(在4前注意报价的问题,前>edit

<a href="javascript:void(0)" onclick="showField("4','school_type');'>Edit</a> 

当应输出:

<a href="javascript:void(0)" onclick="showField('4','school_type');">Edit</a> 

回答

7

尝试\"而不是'onClick

$(".container").append("<a href='javascript:void(0)' onClick=\"showField('"+data.name+"','"+data.text+"');\">Edit</a>"); 
2

您需要转义您的" s的\

$(".container").append("<a href='javascript:void(0)' onClick='showField(\""+data.name+"\",\""+data.text+"\");'>Edit</a>"); 

Live DEMO

+0

那是我第一次的猜测太多,但它导致了完全相同的输出作为原。 – 2012-07-23 14:35:06

+0

看看[这jsfiddle演示](http://jsfiddle.net/yFf55/1/)。它正确显示。 – 2012-07-23 14:39:55

+0

嗯,我不知道,它只是不为我工作。 @mgraph的回答做到了诀窍,我想这是外部的“被内部人员拦截导致问题。” – 2012-07-23 14:42:17

0

虽然这个回答是在深夜时分的到来,但是你也可以达到你想要使用的是什么像这样:

var element = '<p class = ' + '"capitals"' + '> This is a new paragraph</p>' 
    $(".container").append(element); 

如果打印上面的代码调试控制台下面的输出将被打印:

 <p class = "capitals">This is a new paragraph</p> 

您可以使用双引号和单引号结合togther这样'""'打印出双引号。又如:

 var doublequotedtext = '"Hello"'; 
     debug.print(doublequotedtext); 

因此应用上面给你的代码:

 var element = '<a href = ' + '"javascript:void(0)"' + 'onClick = ' + '"showField(data.name,data.text);"' + '>Edit</a>' 
     $(".container").append(element);