繁体   English   中英

我可以在任何HTML元素上调用appendChild吗?

[英]Can I call appendChild on any HTML element?

有人知道我是否可以在任何HTML元素上调用appendChild吗?

具体来说,我需要在输入type ='text'上执行此操作,这似乎可行吗? 但这是正确的吗?

下面是我的代码片段:

var txt = document.createElement('input');
txt.type = 'text';
...
var div = document.createElement('div');
...
txt.appendChild(div);

有人知道我是否可以在任何HTML元素上调用appendChild吗?

您可以。 它是元素节点的标准功能。 但是,这可能并不总是很有意义。

具体来说,我需要在输入type ='text'上执行此操作,这似乎可行吗? 但这是正确的吗?

<input>元素定义为空。 它们仍然具有标准的DOM方法,但不允许其具有子节点。 您正在尝试将DOM置于无效状态,并且(据我所知)您执行操作时所发生的行为是不确定的。 您不应该这样做。

w3.org的输入元素开始

内容模型:空。

将元素放在input是无效的。

如果要设置输入的value ,请使用value属性:

input.value = 'someText';

如果要在输入之前添加元素,请使用insertBefore

input.parentNode.insertBefore(div, input);

要在输入后插入div,您可以

input.parentNode.insertBefore(div, input.nextSibling);

不可以,您不能将子项附加到输入元素。 它是一个独立的元素。 但是,您可以将输入元素附加到div元素。

不可以,您不能将子项附加到输入中,这是因为标准声明此元素的内容模型为Empty。

它仅具有可以由“。”访问的属性。 语法像

input.propertie

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM