2011-05-04 38 views
0

这里是我的jQuery appendTo()代码:“非法字符”中的jQuery appendTo()

$('<li><a href="javascript:void (0)" onmousedown="document.getElementById('searchType_banner').value='p';">document</a></li>').appendTo('.wapper'); 

的萤火它让我想起了一个错误,“丢失)后,参数列表”中的“onmousedown事件”的位置,有时它会提醒我“非法角色”错误。但我不认为我错过任何“)”。

那么,什么不应该出现在appendTo()或者,我应该在appendTo注意()。为什么上面发生的错误,我怎么能解决这个问题?

谢谢

+0

@hh,只是一些建议,我认为你不需要HREF那里,为什么要使其与内嵌代码这么复杂,使其更加清洁。 – kobe 2011-05-04 02:36:16

+0

@科比,我想在一个网站上,不同的页面必须有一些相同的页面,例如菜单,logo.So我想使用jQuery相同的部分追加到共同的容器.header.it可以节省HTML code.furthermore,网站我正在做的是从花药复制,包括JavaScript,所以我复制它在所有 – hh54188 2011-05-04 02:53:57

+0

@ kobe:hh可能需要'href'那里的样式,至少它不是'href =“#”'。不过,我同意你关于jQuery中的'onmousedown'的问题。 – 2011-05-04 02:54:26

回答

1

的选择基本上是一个字符串,所以你用单引号破坏你的字符串。你需要逃避它们。

$('<li><a href="javascript:void (0)" onmousedown="document.getElementById(\'searchType_banner\').value=\"p\";">document</a></li>').appendTo('.wapper');

+0

这个输入的答案将不起作用。 – Phrogz 2011-05-04 02:33:33

+0

真的,我很想知道为什么,http://jsfiddle.net/zYWSv/ – Robert 2011-05-04 02:37:44

+0

+1,似乎工作正常 – kobe 2011-05-04 02:41:39

1

如果你看一下语法高亮自己的堆栈溢出的问题,我想你可以看到什么错。注意字符串结束的位置。

以下是如何解决这个问题:

$('<li><a href="javascript:void (0)" onmousedown="document.getElementById(\'searchType_banner\').value=\'p\';">document</a></li>').appendTo('.wapper'); 

替代修复:

$('<li><a href="javascript:void (0)" onmousedown="document.getElementById(&quot;searchType_banner&quot;).value=&quot;p&quot;;">document</a></li>').appendTo('.wapper'); 

编辑观点:唉!您不应该将锚点元素仅用于JavaScript。如果您喜欢,请使用<button>并将其设置为链接。以下是我会写:

$('<button>document</button>').mousedown(function(){ 
    $('#searchType_banner').val('p'); 
}).appendTo('.wapper'); 
0
$('<a></a>').html('document').mousedown(function(){}).wrap('<li></li>').appendTo('.wapper');