我无论如何都不是javascript程序员,但这一直困扰着我,
是否有更好的方法来编写这两个单独的函数。 在单一功能中?
function showAll()
{
var collection = getElementsByClassName("dealHolder");
for (var x = 0; x < collection.length; x++)
{
setParentTrue(collection[x].parentNode);
}
}
function setParentTrue(obj) {
if (obj.id != "deal")
{
obj.id = "true";
setParentTrue(obj.parentNode);
}
else
{
obj.style.display = 'block';
}
}
我可以在另一个函数中声明一个函数并递归调用它吗?任何时候我需要递归我似乎总是专门为它创建一个单独的功能
为建议干杯
答案 0 :(得分:1)
function showAll()
{
var collection = getElementsByClassName("dealHolder"),
x = 0,
setParentTrue = function(obj) {
if (obj.id != "deal")
{
obj.id = "true";
setParentTrue(obj.parentNode);
}
else
{
obj.style.display = 'block';
}
};
for (x = 0; x < collection.length; x++)
{
setParentTrue(collection[x].parentNode);
}
}
答案 1 :(得分:1)
是的,你可以在函数中声明一个函数,因为函数是对象。
function showAll()
{
var setParentTrue = function (obj) {
if (obj.id != "deal")
{
obj.id = "true";
setParentTrue(obj.parentNode);
}
else
{
obj.style.display = 'block';
}
}
var collection = getElementsByClassName("dealHolder");
for (var x = 0; x < collection.length; x++)
{
setParentTrue(collection[x].parentNode);
}
}
答案 2 :(得分:1)
实际上 - 编写一个单独的函数来保存循环中发生的事情是很好的做法,所以我不会改变你上面的内容。
实际上 - 我不接受 - 在这种情况下,循环中的函数不太可能对其他人有用,所以我会选择下面的一个例子。嵌套在同一个对象中,但仍然是单独的功能。