2011-04-01 120 views
2

我试图用这个选择它它不是为我工作jQuery的家长和孩子选择

var pr = $(this).closest('fieldset'); 
$(pr + ' > .given option:selected').remove().appendTo(pr + ' > .allowed'); 

我得到这个错误

Error: uncaught exception: Syntax error, unrecognized expression: [object Object] 

为什么这不是工作,我希望它的方式至 ?

回答

7

你的代码的问题是,pr不是一个字符串。因此,您无法将其添加到选择器的其余部分。

这应该工作:

$('.given option:selected', pr).remove().appendTo($('.allowed', pr)); 

这将迫使jQuery的公关

+1

我不得不换这样的$( '给定的选项:选择',PR)的appendTo内容。一个.remove()appendTo($(”允许的。 ',pr)); – mcgrailm 2011-04-03 01:45:04

+0

对不起,错过了那一个。现在编辑我的回复。 – Oscar 2011-04-03 09:15:47

+0

再次感谢@Oscar – mcgrailm 2011-04-03 15:11:45

0

的情况下搜索你似乎是混合jQuery对象和选择。

pr变量此行之后变成一个JavaScript(jQuery的)对象:

var pr = $(this).closest('fieldset'); 

然后要附加该对象到一个新的选择,这是不应该怎么做。如果我理解你的意图的权利,请尝试以下操作:

var pr = $(this).closest('fieldset'); 
pr.filter('.given option:selected').remove().appendTo(pr.filter('.allowed'));