如何有效地改变周围div / parent的属性?

时间:2011-08-23 11:24:08

标签: javascript jquery

我有一张桌子,里面有一些单反相机。当我点击radiobutton时,我想更新两个sorrounding容器ID属性(一个div和一个表)。问题是,我需要升级4和6级,我知道如何做到这一点的唯一方法是parent()。parent()。parent()。parent()等。 我正在寻找更好的解决方案,希望有人能指出我正确的方向。您可以看到“父子”树如何在这里的图像:

http://imageshack.us/photo/my-images/834/imgkz.png/

我已经设置了点击处理程序等。

基本上我需要检查表的id属性是否为“answersTable”,如果不是,我需要更改它。此外,我需要检查表格中的div两级是否已“回答”,如果没有,我也需要更改它。

由于

4 个答案:

答案 0 :(得分:2)

您可以使用.closest('#answeredTable').parents('#answeredTable')

使用.parent()仅选择DOM树上的第一个父元素,选择.closest()将允许您走到DOM树并匹配,直到找到元素,而.parents()将返回DOM的整个parentset并匹配整个parentset中的元素。

答案 1 :(得分:1)

您需要使用经过多层DOM的.parents()

例如,在您的示例中,您可以使用以下代码获取周围的div

$("#Q_18_2015").parents("div#answered")

顺便说一下, id应该是唯一的,否则,您的代码可能无效。你应该使用类。

<div class="answered">

因此,代码将成为:

$("#Q_18_2015").parents("div.answered")

前提是Q_18_2015确实是唯一ID

答案 2 :(得分:0)

我认为你想要使用的是最接近的http://api.jquery.com/closest/

答案 3 :(得分:0)

您可以使用.parents

$("element").parent(".parentClass")

parents将上移DOM,直到找到具有类parentClass

的父级