【问题标题】:How to be sure an element comes from the DOM? [duplicate]如何确定一个元素来自 DOM? [复制]
【发布时间】:2012-10-09 20:35:27
【问题描述】:

可能重复:
Javascript isDOM — How do you check if a Javascript Object is a DOM Object?

在我的代码中,我有一个接受 DOM 元素的对象。

为了保持示例清晰,下面的代码已更改为最低限度。

var Test = function(element){
  //if element does not come from the DOM -> throw
};

如何确定该元素来自 DOM 树?

if(element.parentNode === null) {
  throw "not coming from the DOM";
}

这段代码足以说明元素来自 DOM 吗?

【问题讨论】:

  • 如果元素为空(或未定义),则会崩溃。您是想完全区分文档中的元素和分离的元素,还是完全区分 DOM 元素和其他类型的对象?
  • 检查'元素不为空'和'元素是否等于html元素或parentNode不为空'

标签: javascript dom


【解决方案1】:

你可以用 jQuery 做到这一点,jQuery 对象 $("#myid") 总是返回一些东西——一个 jQuery 对象。要检查它是否真的代表页面上的现有 DOM 元素,您可以使用以下命令:

if ( $("#myid").length > 0 ) {
//do something
}

或者基于这个answer,你可以像这样检查它:

var elementInDocument = function(element) {
    while (element = element.parentNode) {
        if (element == document) {
            return true;
        }
    }
    return false;
}

或者像这样:

var element =  document.getElementById('elementId');
if (typeof(element) != 'undefined' && element != null)
{
  // exists.
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多