2013-11-21 62 views
0

我們正在更新我們的客戶調查問卷,這是設置,以便他們可以返回並更新或編輯他們的答案。對於每個問題(項目)基本HTML低於:針對外部父母的CSS與jQuery

<div class="item"> 
    <span class="blue">The question ?</span> 
    <div class="answer"> 
    Previous Answer <a href="" class="editlink">edit</a> 
    </div> <!-- end div answer --> 
    <div class="question"> 
    <textarea name="item-name" class="w90">Previous Answer or empty</textarea> 
    </div> <!-- end div question --> 
</div> <!-- end div item --> 

當從數據庫加載,如果有一個以前的答案,那麼答案DIV將顯示,問題的div會被隱藏&填充以前的答案。如果客戶點擊編輯鏈接,那麼答案div應該隱藏並顯示問題div。

如果沒有以前的答案,那麼問題div將顯示,空的答案div將被隱藏。

我的想法是創建兩個項目類,.item-answers & .item-not-answers來反映兩個狀態,答案和問題可以。然後在PHP首次構建頁面時使用這些類。

但我想弄清楚如何使用jQuery的automagical的東西,以允許單擊editlink更改外部父母的CSS(在我的HTML上面標記爲「項目」)。

回答

1

您正在使用父級jQuery方法。 (http://api.jquery.com/parent/

嘗試這樣:

<a href="#" onclick="$(this).parent().addClass('item-not-answered');" class="editlink">edit</a> 
+0

這似乎爲眼前的父母這將是周邊的div(回答)工作,但我努力的目標下一個更高的父母,這是外部div(item),這樣我就可以在其中生成兩個div。 – Tom

+0

好的,我試過$(this).parent()。parent().addClass ....並且似乎做了這個伎倆......但它是最好的方法嗎? – Tom

+2

你可以使用'parents()。eq()'(用** s **,參見[parents()](http://api.jquery.com/parents/))選擇器來指定哪個祖先元素。試試'$(this).parents()。eq(1).addClass('item-not-answers');' - 祖父。 –