有没有办法将所有属性从一个元素转移到另一个元素?

时间:2017-04-21 20:34:45

标签: javascript html

我正在编写一个AJAX站点,为了执行我导入的脚本,我必须创建新的相同脚本,以便DOM运行它们。我想知道是否有一个简单的内置方法或另一种简单的方法将一个脚本标记的所有属性复制到另一个脚本标记,而不必单独转移它们。

基本上我正在寻找的是:

在HTML中:

<script id = "myscript" src = "somefile.js" type = "text/javascript"></script>

在JS中:

var script = document.createElement("script");
script.innerHTML = document.getElementById("myscript").innerHTML;
script.attributes = document.getElementById("myscript").attributesList;

我目前的方法是将每个属性分别分配给新的脚本对象,我认为这有点单调乏味。

2 个答案:

答案 0 :(得分:1)

您可以使用节点#attributes

&#13;
&#13;
var $oldScript = $("oldScript");
var $newScript = $("newScript");

var attributes = $oldScript.prop("attributes");

// loop through oldScript attributes and apply them on new script
$.each(attributes, function() {
    $newScript.attr(this.name, this.value);
});
&#13;
&#13;
&#13;

答案 1 :(得分:1)

我最终决定使用循环来填充新脚本元素上的属性列表:

for (index = old_script.attributes.length - 1; index > -1; -- index) {

  attribute = old_script.attributes[index];
  new_script.setAttribute(attribute.name, attribute.value);

}