微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 for 转换为 foreach

如何解决如何将 for 转换为 foreach

jslint 告诉 Unexpected 'for'。 所以我认为我必须使用 foreach 进行转换 但是怎么样? 如果有人可以帮忙 谢谢

// Grab the original element
var original    = document.getElementsByTagName("noscript")[0];
// Create a replacement tag of the desired type
var replacement = document.createElement("span");
var i;
// Grab all of the original's attributes,and pass them to the replacement
for(i = 0,l = original.attributes.length; i < l; ++i){
    var nodeName  = original.attributes.item(i).nodeName;
    var nodeValue = original.attributes.item(i).nodeValue;

    replacement.setAttribute(nodeName,nodeValue);
}

// Persist contents
replacement.innerHTML = original.innerHTML;

// Switch!
original.parentNode.replaceChild(replacement,original);

解决方法

i = 0, 后面有一个逗号 应该是分号。
另一个问题是声明 l = original.attributes.length 您不需要变量 l
只需将其用作 for(i = 0; i < original.attributes.length; ++i){

如果你仍然想使用 forEach 你可以这样做:

original.attributes.forEach(element => {
    var nodeName  = element.nodeName;
    var nodeValue = element.nodeValue;

    replacement.setAttribute(nodeName,nodeValue);
});
,

感谢您的回答,我收到了 Uncaught TypeError: original.attributes.forEach is not a function

function Switch() {

var original    = document.getElementsByTagName("noscript")[0];
var replacement = document.createElement("span");

original.attributes.forEach(element => {
    var nodeName  = element.nodeName;
    var nodeValue = element.nodeValue;

    replacement.setAttribute(nodeName,nodeValue);
});

// Persist contents
replacement.innerHTML = original.innerHTML;

// Switch!
original.parentNode.replaceChild(replacement,original);

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。