2011-03-28 94 views
0

我想創建一個jQuery插件,並有選擇DOM的問題。 。繼承jquery插件

例如,當我初始化插件(例如$( '#測試')customplugin();

this.each(function() { 
// Var 
var $this = $(this); 
$this.hide(); 
var thisOpts = $(this + ' option'); 

$ this.hide();按預期運行,隱藏元素#TEST 。

然而,當我試圖讓例如#TEST的李, 似乎沒有任何工作。

有人可以幫助我理解「這種」恰恰是, 爲什麼「thisOpts」贏得」 t target「#test option」?

謝謝!

+0

如何'$ this.find( '選項')。隱藏()'? (更簡潔'$('option',this).hide()') – 2011-03-28 20:25:08

回答

0

什麼是「這個」?因爲如果它不是一個字符串,你試圖將「選項」附加到一個對象上。

你確定它不應該是以下?

var thisOpts = $("option",this); //find OPTION element(s) within This. 
+0

謝謝,我完全忘了我試圖向一個字符串附加一個DOM。和+的快捷方式在jQuery中查找。 – 2011-03-29 13:47:14

0

this是jquery先前匹配的DOM節點。這是一個DIV,LI,SPAN,A,無論如何。在你的例子中,$this成爲一個jQuery集合中的一個DOM節點。如果你想找到它下面的東西,$(this).find('li')會得到你現有的任何LI標籤。

+0

謝謝,我完全忘了我正在嘗試向一個字符串添加一個DOM。 – 2011-03-29 13:31:52

0
$(this + ' option'); 

這應該是一個字符串

或使用

$this.find("option");