JQuery/JavaScript div标记;“遏制”;方法/算法?

JQuery/JavaScript div标记;“遏制”;方法/算法?,javascript,jquery,html,Javascript,Jquery,Html,背景:我创建了一个在线电路设计应用程序,其中div标签是包含较小div容器的容器,等等 问题:对于任何特定的div标记,我需要快速确定它是否包含其他div标记(这可能反过来包含其他div标记) 我搜索了JQuery,但没有看到任何用于此的内置例程。有人知道比O(n^2)更快的算法吗 似乎我必须在一个外循环(n)中遍历div标记列表,在一个内循环(另一个n)中与所有其他div标记进行比较,并进行“包容测试”(位置、宽度、高度),构建一个包含div标记的列表。这是n平方。然后,我必须通过连接包含的列

背景:我创建了一个在线电路设计应用程序,其中div标签是包含较小div容器的容器,等等

问题:对于任何特定的div标记,我需要快速确定它是否包含其他div标记(这可能反过来包含其他div标记)

我搜索了JQuery,但没有看到任何用于此的内置例程。有人知道比O(n^2)更快的算法吗

似乎我必须在一个外循环(n)中遍历div标记列表,在一个内循环(另一个n)中与所有其他div标记进行比较,并进行“包容测试”(位置、宽度、高度),构建一个包含div标记的列表。这是n平方。然后,我必须通过连接包含的列表来构建所有嵌套div标记的列表。所以总数是O(n^2)+n


一定有更好的方法吗?

您可以进行以下检查

$('div_selector').has('div').length > 0 // it contains divs
或者

$('div_selector').is(':has(div)') // returns true if it contains divs

上述检查适用于dom中的实际包含(嵌套)(不适用于一个div的维度包含在另一个div中的可视包含)

您甚至不需要jQuery。您只需执行此测试,其中“div”是容器:

if (div.getElementsByTagName('div').length > 0) {
  // do something
}

如果您担心速度,那么缓存特定div包含的div量如何?(实际上我问了一个错误的问题。我创建了一个关于可拖动div标记的新问题。)谢谢。我希望在这个系统中,我能对不止一个正确答案给予“信任”。(实际上我问错了问题。我创建了一个关于可拖动div标记的新问题。)