javascript - 使用 jquery 检查元素内部有一些元素

标签 javascript jquery

你可以像 if($('.div').find('.someelem').length == 0 .. 检查 .someelem 在 div 中是否可用,

但是如果我想检查任何元素怎么办?我不知道里面的类(class)是什么。

<div>
</div>

^ 检查上面的 div 是否包含某些东西。

最佳答案

更快的方法是使用 .find() 因为它不会触发有点昂贵的 jQuery 的 Sizzle 选择器库:

if( !$(".div").find(">")[0] ){
    // Maybe has text, but has absolutely no children Elements.
}

如果您想更具体地选择您的选择器,而不是使用 ">"(任何 直接子级),您可以使用 "div" 以及,将您的搜索限制为仅 DIV 元素。


您还可以检查“if is empty

$(".div:empty").someMethodYouWant(); // Do some stuff on empty elements. (Really empty)

if( $(".div").is(":empty")  ){
    // Has no elements and no text
}

请注意,如果您只有一些文本(意味着它不是空的),上面的代码将产生 false

如果你更想使用直接子元素 > 元素

if( !$(".div:has(>)").length ){
    // Maybe has text, but has absolutely no children Elements.
}

或者还有:

if( !$(".div:has(>)")[0] ){
    // Maybe has text, but has absolutely no children Elements.
}

或者更简单:

if( !$(".div >")[0] ){
    // Maybe has text, but has absolutely no children Elements.
}

关于javascript - 使用 jquery 检查元素内部有一些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29202132/

相关文章:

javascript - Jquery过滤器菜单开关

Jquery,从中心旋转

javascript - 检查未定义的 JavaScript 变量?

javascript - 如何使用 JQuery 以编程方式单击文本输入?

javascript - 我们如何在不与服务器建立任何连接的情况下检查我们的 IP 地址?

JavaScript 弹出窗口未触发?

javascript - 将鼠标悬停在一行上时如何突出显示多行

javascript - 在 select 中选择一个选项时的事件名称

Javascript倒计时不显示

javascript - Asp.Net&JavaScript : Problem With Image Slide