但是当然!例如:
function toggleSingle(elementId) {
var el = document.getElementById(elementId);
if (el.style.display === 'none') {
el.style.display = 'block';
}
else {
el.style.display = 'none';
}
}
这个函数可以被另一个函数使用,它与集合一起工作:
function toggleMultiple(elementIds) {
if (! (elementIds && elementIds[0]) ) {
// elementIds is not an array, should exit (and warn the developer as well perhaps)
return;
}
for (var i = 0, l = elementIds.length; i < l; ++i) {
toggleSingle(elementIds[i]);
}
}
为什么我把它写成两个函数而不是一个?好的,在这种情况下,这可能是一种矫枉过正,但总的来说,我经常将“单个”项目处理分离到一个单独的函数中:它使我的代码更具可读性,并且我的测试更简单。尽管如此,我们仍然可以用这样的方式编写一个无所不能的函数:
function toggleSmart() {
for (var i = 0, l = arguments.length; i < l; ++i) {
var el = document.getElementById(arguments[i]);
if (el.style.display === 'none') {
el.style.display = 'block';
}
else {
el.style.display = 'none';
}
// and another way to do it: more concise, but less readable for some:
// var display = el.style.display;
// display = display === 'none'
// ? 'block'
// : 'none';
}
}