【发布时间】:2020-02-13 01:22:08
【问题描述】:
我在一个页面上有两个下拉菜单。单击按钮时,我需要将一个新选项添加到两个下拉列表中(将相同的选项添加到两者中)。选项值存储在一个数组中,我首先创建一个新的选项元素new_option 并从数组中设置其值/文本,然后将选项添加到带有dropdown1_name.options.add(new_option) 和dropdown2_name.options.add(new_option) 的下拉列表中。
但在实践中,新选项只会添加到我添加的第二个下拉列表中,而不是第一个下拉列表中,即如果我先做 dropdown2.add 后跟 dropdown1.add,那么只有 dropdown1 会获得新选项。
很容易解决这个问题,方法是从头开始创建新选项元素的副本,并向每个下拉菜单添加一个副本。但这对我来说没有意义,所以这个问题的重点是我真的很想首先了解导致这种行为的原因。为什么不能将相同的新创建选项添加到两个下拉列表中?
This fiddle I just made 有一个测试设置。
【问题讨论】:
-
这可能与深拷贝与浅拷贝有关,请在网上搜索。您可以使用 jquery api.jquery.com/clone 或其他一些方法来生成深拷贝
-
你必须像“var cloneNode = el1.cloneNode(true);”一样克隆节点,你不能在两个元素上添加相同的实例。
标签: javascript html html-select