2011-04-01 112 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'));