【问题标题】:jQuery - how to check if an element exists?jQuery - 如何检查元素是否存在?
【发布时间】:2011-07-14 15:55:17
【问题描述】:

我知道您可以测试width()height(),但是如果元素的显示属性设置为无怎么办?还有什么其他值可以检查以确保元素存在?

【问题讨论】:

  • “存在”与“显示”不太一样
  • Check if element exists 的可能重复项
  • 作为参考,一个元素“存在”,即使它设置为display: none。这种区别对于表单控件尤为重要;无论是否可见,它们都会被提交。
  • 对不起,我是个超级笨蛋,我把 width() 和 length 混为一谈,以为它们是一样的。当 dislpay 为 none 时,width() 返回 0 或 false(我不知道),length 始终有效。

标签: javascript jquery if-statement


【解决方案1】:

您可以使用length 来查看您的选择器是否匹配任何内容。

if ($('#MyId').length) {
    // do your stuff
}

【讨论】:

  • 您不需要> 0,如下面的示例所示。 $('#MyId').length 一个人就能做到。
【解决方案2】:

大多数情况下,我更喜欢使用这种语法:

if ($('#MyId')!= null) {
    // dostuff
}

即使这段代码不加注释,功能也是显而易见的。

【讨论】:

  • 这将始终返回 true。
  • 哦,天哪……那是真的……感谢您的通知!嗯,这很奇怪,我对此没有任何问题……我想我得花点时间在我的 JS 开发人员上纠正这个问题……
【解决方案3】:

我用这个:

if ($('.div1').size() || $('.div2').size()) {
    console.log('ok');
}

【讨论】:

    【解决方案4】:
    if ($("#MyId").length) { ... write some code here ...}
    

    this from 将自动检查元素是否存在,如果元素存在则返回 true。

    【讨论】:

      【解决方案5】:

      假设您正在尝试查找 div 是否存在

      $('div').length ? alert('div found') : alert('Div not found')
      

      http://jsfiddle.net/Qr86J/1/查看工作示例

      【讨论】:

      • Ehhh,使用 .length > 0 会更清楚,而不是隐含的“真实”检查。
      【解决方案6】:

      jQuery 应该能够找到隐藏的元素。它还具有 :visible:hidden 选择器来查找可见和隐藏元素。

      这有帮助吗?不确定没有更多信息。

      【讨论】:

        【解决方案7】:

        你可以使用可见的选择器:

        http://api.jquery.com/visible-selector/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-02-17
          • 2011-06-26
          • 2011-03-25
          • 2012-12-05
          • 1970-01-01
          • 2011-06-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多