jQuery父子选择器

时间:2011-04-01 19:24:59

标签: jquery

我正在尝试使用这个选择器它不适合我

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

我收到此错误

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

为什么这不符合我的预期?

2 个答案:

答案 0 :(得分:7)

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

这应该有效:

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

这将强制jQuery在pr

的上下文中进行搜索

答案 1 :(得分: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'));