gpt4 book ai didi

javascript - 在 jQuery 中如何检查一个元素是否在另一个元素中?

转载 作者:IT王子 更新时间:2023-10-29 03:18:12 26 4
gpt4 key购买 nike

在 JavaScript 或 jQuery 中是否有任何直接的方法来检查一个元素是否在另一个元素中。

我指的不是 $(this).parent因为我希望找到的元素可以是元素树中较低的随机数步。

例如,我想检查 < div id="THIS DIV">将在 < div id="THIS PARENT"> 内:

<div id="THIS_PARENT">
<div id="random">
<div id="random">
<div id="random">
<div id="THIS_DIV">
(... close all divs ...)

所以在伪代码中:

 if($("div#THIS_DIV").isWithin("div#THIS_PARENT")) ...

如果没有任何直接的方法,我可能会为此做一个函数,但仍然值得一问。

最佳答案

你可以这样做:

if($('#THIS_DIV','#THIS_PARENT').length == 1) {

}

通过 specifying a context对于搜索(第二个参数),我们基本上是在说“在 ID 为 #THIS_DIV 的元素中查找 ID 为 #THIS_PARENT 的元素”。这是使用 jQuery 最简洁的方法。

我们也可以这样写,使用 find ,如果它对您更有意义:

if($('#THIS_PARENT').find('#THIS_DIV').length == 1) {

}

或者像这样,使用 parents ,如果你想从 child 向上搜索:

if($('#THIS_DIV').parents('#THIS_PARENT').length == 1) {

}

其中任何一个都应该可以正常工作。 length bit 是确保“搜索”的长度 > 0 所必需的。我当然个人建议您使用第一个,因为它最简单。

此外,如果您通过 ID 引用元素,则没有必要(当然完全可以)在选择器前面加上标签名称。不过,就速度而言,它并没有真正帮助,因为 jQuery 将使用 native getElementById()在内部。使用标签名称仅在按类别选择时才重要,如 div.myclass.myclass 快得多如果只有 <div>元素将具有特定的类。

关于javascript - 在 jQuery 中如何检查一个元素是否在另一个元素中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com