每当我迭代地编写代码时,程序就会按照预期运行,但是当我放入这样的函数时它会中断。
function create_tableElements() {
Let myArticle = document.createElement(‘tr’);
Let rank = document.createElement(‘td’);
}
function assign_tableElements() {
Let count = 1
rank1 = count;
rank.textContent = rank1;
heroes_name.textContent = heroes[i].name;
}
function append_tableElements() {
myArticle.appendChild(rank);
myArticle.appendChild(heroes_name);
}
有谁知道为什么会这样?有没有办法在函数内调用函数?我正在使用for循环来循环JSON。现在,如果我没有放入函数并只编写代码,它将运行得非常好。只是努力提高可读性,并更好地组织我的代码
答案 0 :(得分:1)
您粘贴的代码(Let
代替let
或花哨的单引号)存在一些问题。
我将假设您的手机或您使用的任何工具更正了它。所以,让我们说这是你的代码:
function create_tableElements() {
let myArticle = document.createElement('tr');
let rank = document.createElement('td');
}
function assign_tableElements() {
let count = 1;
rank1 = count;
rank.textContent = rank1;
heroes_name.textContent = heroes[i].name;
}
function append_tableElements() {
myArticle.appendChild(rank);
myArticle.appendChild(heroes_name);
}
您的代码无法正常运作,因为:
rank
变量是create_tableElements
函数的本地变量,append_tableElements
函数heroes_name
功能,它是assign_tableElements
功能您可以通过以下方式解决此问题:
(function() {
// these variables will be visible to all the functions defined in this function, but won't be global :
let rank, myArticle, heroes_name;
function create_tableElements() {
myArticle = document.createElement('tr');
rank = document.createElement('td');
}
function assign_tableElements() {
let count = 1;
rank1 = count;
rank.textContent = rank1;
heroes_name.textContent = heroes[i].name;
}
function append_tableElements() {
myArticle.appendChild(rank);
myArticle.appendChild(heroes_name);
}
// invoking your functions :
create_tableElements();
assign_tableElements();
append_tableElements();
})();