2013-10-11 42 views
0
<div class='wrap'> 
    <textarea></textarea> 
    <a href=''></a> 
</div> 

<div class='wrap'> 
    <textarea></textarea> 
    <a href=''></a> 
</div> 

<div class='wrap'> 
    <textarea></textarea> 
    <a href=''></a> 
</div> 

我有很多具有相同子級內容的父元素。 當一個事件發生給孩子時,對同一父母的另一個孩子做一些事情。當其他孩子被觸發時,修改子元素

例如:

<textarea> onkeyup (from parent A) change the background-color of <a> (from parent A) 

如何面對呢?

+1

那麼,你有什麼嘗試,爲什麼失敗? –

回答

1

你正在尋找任siblings(事件處理程序中施加到$(this)),或可能是的closestfind(組合,如果其他元件可以在不同的級別,這是不在您的示例的情況下)。

示例 - siblingsLive Copy | Source

$(".wrap textarea").on("keyup", function() { 
    var link = $(this).siblings("a"); 
    link.css("background-color", "green"); 
}); 

實施例 - closest + findLive Copy | Source

$(".wrap textarea").on("keyup", function() { 
    var link = $(this).closest(".wrap").find("a"); 
    link.css("background-color", "green"); 
}); 
+0

第一個沒有爲我工作,但第二個(最接近+找到)。非常感謝! –

+0

@IvorySantos:它們都與問題中的標記一起工作(請參閱我添加的實例)。正如我在答案中所說的,「兄弟姐妹」只能與同級別的元素(事件觸發元素的同胞)一起工作。很高興這有幫助。 –

+0

@ T.JCrowder我很好奇,這就是爲什麼我試圖再次使用兄弟姐妹。但我無法讓它工作。我不知道什麼是錯的。也許我現有的一些代碼會使這個功能失效。謝謝 –

相關問題