Javascript 复制字符串的简写方法

发布于 2024-09-14 17:54:22 字数 517 浏览 14 评论 0 原文

我在一个函数中有这段代码,并且想缩短它 - 它将相同的样式应用于数组中的每个项目。

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';

I have this code in a function, and want to shorten it - it applies the same style to every item in an array.

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';

NO answer to date worked (Because I am looping thru the code??)

Resolved it by setting only the previously displayed slide visibility to hidden

x = i;
i = i+1;

document.getElementById(divsArray[x]).style.visibility = 'hidden';

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

丢了幸福的猪 2024-09-21 17:54:22

使用循环怎么样:

for (var i = 0; i < 4; i++) {
    document.getElementById(divsArray[i]).style.visibility = 'hidden'; 
}

How about using a loop:

for (var i = 0; i < 4; i++) {
    document.getElementById(divsArray[i]).style.visibility = 'hidden'; 
}
时间你老了 2024-09-21 17:54:22

只是为了提供一些不同的东西,一个 jQuery 解决方案:

$(divsArray).each(function() {
  $(this).css("visibility", "hidden");
});

编辑:看起来您可能必须首先收集 DOM 引用。 (divsArray 实际上只是一个 div 名称数组,而不是 div 本身?)

$(divsArray).each(function() {
  $("#" + this).css({ "visibility": "hidden" });
});

Just to provide something different, a jQuery solution:

$(divsArray).each(function() {
  $(this).css("visibility", "hidden");
});

Edit: It looks like you might have to collect your DOM references first. (divsArray is really just an array of div names, and not the divs themselves?)

$(divsArray).each(function() {
  $("#" + this).css({ "visibility": "hidden" });
});
卸妝后依然美 2024-09-21 17:54:22

在我看来,可能会有更多的 div...我可以建议对 Darin 的代码进行这样的更改:

for (var i = 0; i < divsArray.length; i++) {
   document.getElementById(divsArray[i]).style.visibility = 'hidden'; 
}

It sounds to me that there might be more divs... Might I suggest this change to Darin's code:

for (var i = 0; i < divsArray.length; i++) {
   document.getElementById(divsArray[i]).style.visibility = 'hidden'; 
}
_畞蕅 2024-09-21 17:54:22

以下是它在 PrototypeMootools:

$(divsArray).each(function(item) {
  $(item).setStyle({visibility: "hidden"});
});

And here's how it works in both Prototype and Mootools:

$(divsArray).each(function(item) {
  $(item).setStyle({visibility: "hidden"});
});
在风中等你 2024-09-21 17:54:22

您可以将以下函数放在 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);

不,没有宏,也没有模板。

You can put the following function in the same/descendant scope of divsArray.

function baka(idx) {
  document.getElementById(divsArray[idx]).style.visibility = 'hidden';
}

Then you can do either

baka(0);
baka(1);
baka(2);
baka(3);

or

for (var i = 0; i < 4; i++)
  baka(i);

It looks pointless, but if you have more arrays like that, you may want to modify your function like this:

function aho(arr, idx) {
  document.getElementById(arr[idx]).style.visibility = 'hidden';
}

and loop through any array like this:

for (var i = 0; i < divsArray.length; i++)
  aho(divsArray, i);

And no, there are no macros nor are there templates.

云巢 2024-09-21 17:54:22
for (i=0;i<4;i++) {
  document.getElementById(divsArray[i]).style.visibility='hidden';
}
for (i=0;i<4;i++) {
  document.getElementById(divsArray[i]).style.visibility='hidden';
}
最终幸福 2024-09-21 17:54:22

只要我们都在努力,我就会采取最直接的方法 :D

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';
}

as long as we're all piling on, i'll take the most direct approach :D

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';

and just to go against the grain:

var d = null, i = 0;
while (d = document.getElementById(divsArray[i++])) {
    d.style.visibility = 'hidden';
}
绝不服输 2024-09-21 17:54:22

我无法“抗拒”这个挑战。我想说你将它们添加到同一个类中并执行类似的操作(原型示例):

$('.className').invoke('setStyle', { 'visibility' : 'hidden' });

I couldn't "resist" to the challenge. I would say you add them the same class and do something like (Prototype example):

$('.className').invoke('setStyle', { 'visibility' : 'hidden' });
小伙你站住 2024-09-21 17:54:22

我们可以使用 id 的数组="nofollow noreferrer">Array.prototype.forEach() 和 ES6 的 箭头函数

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>

We can iterate over array containing ids using Array.prototype.forEach() and ES6's Arrow Functions:

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>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文