jQuery-如果div后代中的任何地方都没有特定的ID

时间:2019-03-10 14:25:47

标签: jquery if-statement

如果div中没有​​任何具有特定ID的后继div元素,请执行一些操作

尝试此操作没有成功。我的许多尝试都行不通。
语法似乎还可以,但是我找不到正确的逻辑。
注意。我正在测试的ID为[#my_selector]的div不是直接子对象

    if ($('.fancybox-container div:not(:has[id="'+my_selector+'"])')) {
        // do this 
    }

,以下示例均无效。 谁能帮忙弄清楚吗?

    if ($(".fancybox-container").not('div:has[id="'+my_selector+'"]')) {}
    if ($(".fancybox-container").find('div:not(:has[id="'+my_selector+'"])')) {}
    if ($('.fancybox-container div:not(:has("#" + my_selector))')) {}

2 个答案:

答案 0 :(得分:0)

您可以简单地使用$('.fancybox-container #' + myselector),然后检查其长度。如果fancybox容器不包含该ID的任何元素,则它将返回零长度:

if ($('.fancybox-container #' + myselector).length) {
  // Contains a descendent element with that ID
} else {
  // Does not contain a descendent element with that ID
}

答案 1 :(得分:0)

  1. ID必须唯一,因此if ($("#"+my_selector).length===0) ...
  2. 如果不是ID,则对find if ($(".fancybox-container").find(my_selector).length ===0) ...做同样的事情