2012-07-23 48 views
1

我有以下的jquery,它會在點擊一個按鈕時顯示div。Jquery .show無法正常工作

var parent = $(this)[0].parentElement.innerHTML; 
$(parent).find('.divName').show(); 

.show()不工作。任何想法?

回答

2

在第一行,你得到一個元素的HTML字符串。
在第二行中,您將使用此字符串創建一個新元素,然後在原始元素的虛擬副本上調用.show()

這是正確的做法:

var $parent = $(this).parent(); 
$parent.find('.divName').show(); 
+0

感謝羅布!!!!!!!它完美的作品 – sam 2012-07-23 10:26:57

0

只需刪除.innerHTML,即可定位文本而不是元素。

另外,我不經常混淆的jQuery和javascript,這裏是譯:

var parent = $(this).parent(); 
parent.find('.divName').show(); 

而且,你能顯示完整的代碼?

編輯

+1

JavaScript沒有'.parent'方法。 '$(this)[0] === this'。只要刪除'[0]'。在jQuery中,事件監聽器中的this這個「OP」表示「點擊一個按鈕」!)引用一個元素。 '$(this)[0] === this',所以你的情況中的'parent'指向一個DOM元素。 – 2012-07-23 10:05:45

+0

謝謝你糾正我,我會更新我的代碼。 – Novak 2012-07-23 10:13:50

0

檢索從HTML字符串jQuery對象將無法正常工作。這應該做你想做的:

$(this).first().parent().find(".divName").show();