getElementById没有显示出来

时间:2013-10-01 02:22:00

标签: javascript

我正在尝试使用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 提前谢谢!

1 个答案:

答案 0 :(得分: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时,只有一个可用。