簡體   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