-2

我正在尝试使用 getElementById 来复制页面中的信息,但它没有显示出来。我将脚本包含在 IDX-subheader 中(在 IDX-main 文件夹下):

<script type="text/javascript">
var elem = document.getElementById('IDX-detailsField-address'); 
var newElem = elem.cloneNode(true);
newElem.setAttribute('IDX-detailsField-address', 'IDX-details-address');
var before = elem.nextSibling;
elem.parentNode.insertBefore(newElem, before);</script>

我已经设置了复制的元素,使其具有不同的 id(IDX-details-address)。添加了 div,但我在任何地方都看不到 div 的内容。

<div id="IDX-details-address"></div>

该脚本适用于http://jsfiddle.net/BR72b/。该网站是http://austinhometeam.com 在此先感谢!

4

1 回答 1

1

首先,setAttribute 使用不当。当您执行 setAttribute 时,第一个参数必须是属性类型,第二个参数必须是该属性的值。

其次,您应该创建一个新元素,而不是通过引用传递一个元素。最好的方法是使用 cloneNode() 来保存节点的所有属性,甚至是子节点。

如果我正确理解您的问题,这将是一个解决方案:

var elem = document.getElementById('IDX-detailsField-address');
var newElem = elem.cloneNode(true);
newElem.setAttribute('id', 'IDX-details-address');
var before = elem.nextSibling;
elem.parentNode.insertBefore(newElem, before);

使用 cloneNode 时请注意,它将复制元素的 ID。当页面上有重复的 ID 时,只有一个可用。

于 2013-10-01T03:13:08.767 回答