将“ let”替换为“ var”,而无需更改代码逻辑

时间:2018-08-27 08:00:16

标签: javascript

我有两个功能,即使用新格式。我想更改此代码,但我需要此功能完全相同。

第一个功能:

let sts = $(".st--footer-column");

for (let i of sts) {
  while (i.childElementCount) {
    i.parentNode.appendChild(i.firstElementChild)
  }
  i.parentNode.removeChild(i)
}

第二个功能:

let groups = $(".st-footer--navigation");

let child = groups.find('.st--footer-column');

if (!child.length) {
  for (let i of groups) {
    let childrens = i.children;
    let stFooterColumn = document.createElement("div");

    // add the class
    stFooterColumn.classList.add("st--footer-column");

    // add each child to the new div
    while (childrens.length) {
      stFooterColumn.appendChild(childrens[0])
    }

    // append the div to previews to group
    i.appendChild(stFooterColumn)
  }
}

1 个答案:

答案 0 :(得分:-1)

我会保持原样,但是如果您要更改它们,则可以直接替换letvar,而功能将保持不变,特别是因为您说它们是函数。

var仅限于函数的范围,因此不会影响函数以外的任何事物。

let是块作用域的,但是在您给出的示例中,用var替换将不会影响该函数的其余部分。

function firstFunction() {
    var sts = $(".st--footer-column");

    for (var i of sts) {
        while (i.childElementCount) {
            i.parentNode.appendChild(i.firstElementChild);
        }
        i.parentNode.removeChild(i);
    }
}

function secondFunction() {
    var groups = $(".st-footer--navigation");

    var child = groups.find(".st--footer-column");

    if (!child.length) {
        for (var i of groups) {
            var childrens = i.children;
            var stFooterColumn = document.createElement("div");

            // add the class
            stFooterColumn.classList.add("st--footer-column");

            // add each child to the new div
            while (childrens.length) {
                stFooterColumn.appendChild(childrens[0]);
            }

            // append the div to previews to group
            i.appendChild(stFooterColumn);
        }
    }
}