【发布时间】:2012-07-20 12:42:14
【问题描述】:
我有一棵乌里树。对于每组子节点,我都有一个复选框或一个单选控件。
我正在做的是,当我选中任何复选框或单选框时,我希望除兄弟节点之外的所有节点都处于未选中状态(如果是复选框)。所以我在这里写了我的jquery。
我的 jquery 正在处理一个我需要帮助的问题。
如下:
if($(this).parent().parent().parent() != $(elem).parent().parent().parent())
整个小提琴是here
在上述情况下,当我比较相同的父母时,有时我应该得到false。
请查看代码并帮助理解为什么它们总是返回 true。
【问题讨论】:
-
您是否尝试过比较 DOM 元素?
if($(this).parent().parent().parent()[0] != $(elem).parent().parent().parent()[0]) -
是的,比较 jQuery 对象没有意义,因为每次调用
$()都会返回一个新对象。 -
另外,除了那个脆弱的
.parent()链,你可以考虑使用.closest('li')之类的东西来找到第一个父节点<li>。 -
@jbabey 我没有看到你的评论,我只是发布了答案。对此感到抱歉。
-
@EnesUnal 你努力回答,而不是我 :)
标签: javascript jquery object tree