我在函数中有这个代码,并想缩短它 - 它将相同的样式应用于数组中的每个项目。
document.getElementById(divsArray[0]).style.visibility = 'hidden';
document.getElementById(divsArray[1]).style.visibility = 'hidden';
document.getElementById(divsArray[2]).style.visibility = 'hidden';
document.getElementById(divsArray[3]).style.visibility = 'hidden';
没有回答日期工作(因为我通过代码循环?)
通过仅将之前显示的幻灯片可见性设置为隐藏
来解决此问题x = i;
i = i+1;
document.getElementById(divsArray[x]).style.visibility = 'hidden';
答案 0 :(得分:8)
如何使用循环:
for (var i = 0; i < 4; i++) {
document.getElementById(divsArray[i]).style.visibility = 'hidden';
}
答案 1 :(得分:5)
只是提供一些不同的东西,一个jQuery解决方案:
$(divsArray).each(function() {
$(this).css("visibility", "hidden");
});
编辑:您可能必须先收集DOM引用。 (divsArray实际上只是一个div名称数组,而不是div本身?)
$(divsArray).each(function() {
$("#" + this).css({ "visibility": "hidden" });
});
答案 2 :(得分:4)
听起来我可能会有更多的div ...我可能会建议对Darin的代码进行更改:
for (var i = 0; i < divsArray.length; i++) {
document.getElementById(divsArray[i]).style.visibility = 'hidden';
}
答案 3 :(得分:4)
$(divsArray).each(function(item) {
$(item).setStyle({visibility: "hidden"});
});
答案 4 :(得分:4)
您可以将以下函数放在divsArray的相同/后代范围内。
function baka(idx) {
document.getElementById(divsArray[idx]).style.visibility = 'hidden';
}
然后你可以做任何一个
baka(0);
baka(1);
baka(2);
baka(3);
或
for (var i = 0; i < 4; i++)
baka(i);
它看起来毫无意义,但是如果你有更多这样的数组,你可能想要像这样修改你的函数:
function aho(arr, idx) {
document.getElementById(arr[idx]).style.visibility = 'hidden';
}
并循环遍历任何数组:
for (var i = 0; i < divsArray.length; i++)
aho(divsArray, i);
不,没有宏,也没有模板。
答案 5 :(得分:2)
for (i=0;i<4;i++) {
document.getElementById(divsArray[i]).style.visibility='hidden';
}
答案 6 :(得分:1)
document.getElementById(divsArray[0]).style.visibility =
document.getElementById(divsArray[1]).style.visibility =
document.getElementById(divsArray[2]).style.visibility =
document.getElementById(divsArray[3]).style.visibility = 'hidden';
只是反对谷物:
var d = null, i = 0;
while (d = document.getElementById(divsArray[i++])) {
d.style.visibility = 'hidden';
}
答案 7 :(得分:1)
我无法“抵抗”挑战。我会说你将它们添加到同一个类中并执行类似(原型示例):
$$('.className').invoke('setStyle', { 'visibility' : 'hidden' });
答案 8 :(得分:0)
我们可以使用Array.prototype.forEach()
和ES6的Arrow Functions迭代包含id
的数组:
var elemIds = ['two', 'four', 'six'];
elemIds.forEach(id => {document.getElementById(id).style.visibility = 'hidden';});
<div id="one">One</div>
<div id="two">Two</div>
<div id="three">Three</div>
<div id="four">Four</div>
<div id="five">Five</div>
<div id="six">Six</div>
<div id="seven">Seven</div>