我在以下树结构中有一些递归 HTML:
分项 div.content 输入 div.container 分项 div.content 输入 div.container 分项 ETC...
这是一个带有工作示例的 jsfiddle:http: //jsfiddle.net/HWHRZ/
我还有一个对象,其中包含对每个.item
div 的 jQuery 引用。
我想要做的是,对于任何特定.item
的,只选择下面的输入,不包括任何更深.container
或.item
元素中的输入。
更复杂的是,并非每个.item
人的输入布局都相同。有时输入可能在其他div
元素中,因此使用简单选择它们.find('> .content :input')
并不总是有效。
我找到了一个解决方案,但是对于大树来说效率很低,而且一点也不优雅:(
$(':input', $item).not($('.container :input', $item)).toggleClass('changed');
是$item
我保留在对象中的参考)。这个解决方案可以正常工作,但是对于任何足够大的树结构来说效率太低了,因为它not()
必须处理很多节点。
简而言之:我需要选择不在特定其他子节点内的特定子节点。
有人知道更有效的方法吗?