亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將相同的“選項”元素添加到兩個不同的“選擇”列表?

如何將相同的“選項”元素添加到兩個不同的“選擇”列表?

四季花海 2023-08-18 14:11:12
我有一個小的 JS 示例,嘗試將相同的option元素添加到兩個不同的select列表,但似乎每當我嘗試這樣做時,唯一option的元素就會添加到兩個列表中的第二個,我不確定為什么。HTML:<select id='one'></select><select id='two'></select><input type='button' value='click' onclick='ftn();' />JavaScript:function ftn() {    var one = document.getElementById("one");    var two = document.getElementById("two");    var option = document.createElement("option");    option.value = "cool";    option.innerText = "beans";    one.appendChild(option);    two.appendChild(option);};結果:option我可以實現使該元素的內容同時存在于兩個列表中的預期結果select,但這需要我創建兩個不同的option元素,并且使它們的數據相同。有沒有一種方法可以在 Javascript 中僅使用一個選項元素來完成此任務?另外,這是我為此編寫的 CodePen 的鏈接:CodePen
查看完整描述

1 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

你不能。一個元素只能有一個父元素,因此要將同一option元素添加到兩個不同的select列表中,必須復制option.

MDN文檔是appendChild這樣說的:

Node.appendChild() 方法將一個節點添加到指定父節點的子節點列表的末尾。如果給定的子節點是對文檔中現有節點的引用,appendChild() 會將其從當前位置移動到新位置(不需要在將節點追加到其他節點之前從其父節點中刪除該節點)。
這意味著一個節點不能同時位于文檔的兩個點中。因此,如果該節點已經有父節點,則首先刪除該節點,然后將其追加到新位置。Node.cloneNode() 方法可用于在將節點附加到新父節點之前創建節點的副本。請注意,使用cloneNode 制作的副本不會自動保持同步。

因此,您的代碼將附加option到第一個select,然后將其移動到第二個。您可以克隆option將其放入兩個select元素中。



查看完整回答
反對 回復 2023-08-18
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號