Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 文档外的元素_Javascript_Jquery_Html_Css_Web - Fatal编程技术网

Javascript 文档外的元素

Javascript 文档外的元素,javascript,jquery,html,css,web,Javascript,Jquery,Html,Css,Web,我刚刚读了MDN的这篇文章,看到根据“document.getElementById”的规范,不在文档中的元素不被搜索 我对元素为什么/如何可以在文档之外感到困惑。这与绝对定位元素(即从文档流中删除绝对定位元素)的定义有何不同。我不完全确定绝对定位元素的情况是否适用于此,但如果您能澄清“文档之外”的含义以及为什么会使用类似的内容,我将不胜感激。文档是一棵树,但您可以拥有不在树上的节点(叶子/分支)(要么是因为他们从来没有这样做过,要么是因为他们已经成功了) 举例可能会更清楚地说明这一点 示例1:

我刚刚读了MDN的这篇文章,看到根据“document.getElementById”的规范,不在文档中的元素不被搜索


我对元素为什么/如何可以在文档之外感到困惑。这与绝对定位元素(即从文档流中删除绝对定位元素)的定义有何不同。我不完全确定绝对定位元素的情况是否适用于此,但如果您能澄清“文档之外”的含义以及为什么会使用类似的内容,我将不胜感激。

文档是一棵树,但您可以拥有不在树上的节点(叶子/分支)(要么是因为他们从来没有这样做过,要么是因为他们已经成功了)

举例可能会更清楚地说明这一点

示例1:从不在树中:

这里有一个元素不在任何文档中:

var elm = document.createElement('div');
elm.id = "foo";
这是一个元素,具有
id
,但它不是任何文档的一部分

示例2:从树中删除:

HTML:


|

文档是一棵树,但您可以拥有不在树上的节点(叶子/树枝)(要么因为它们从未在树上,要么因为它们从树上脱落)

举例可能会更清楚地说明这一点

示例1:从不在树中:

这里有一个元素不在任何文档中:

var elm = document.createElement('div');
elm.id = "foo";
这是一个元素,具有
id
,但它不是任何文档的一部分

示例2:从树中删除:

HTML:

|

“不在文档中”表示“不存储在当前文档的DOM树中”,即节点存在于内存中,但它们不“附加”到页面上的任何节点

一个佐证是,元素因此必须是不可见的,但其原因与绝对位置完全不同。在绝对位置中,节点确实存在于DOM中,它们可能不在“屏幕上”的位置。

“不在文档中”表示“不存储在当前文档的DOM树中”,即节点存在于内存中,但未“附加”到页面上的任何节点


一个佐证是,元素因此必须是不可见的,但原因与绝对位置完全不同。在绝对位置中,节点确实存在于DOM中,它们可能不在“屏幕上”的位置.

您可能需要向松散元素添加
id
,因为问题特别是关于
getElementById
。您可能需要向松散元素添加
id
,因为问题特别是关于
getElementById
// The div is in the document, so this works:
var elm = document.getElementById("foo");

// Now we remove it:
elm.parentNode.removeChild(elm);

// 'elm' is no longer in any document
console.log(document.getElementById("foo")); // null