在触发其他子项时修改子元素

时间:2013-10-11 10:24:37

标签: javascript parent-child

<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 个答案:

答案 0 :(得分: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");
});