javascript如何停止小于elems.length的循环4?

javascript如何停止小于elems.length的循环4?,javascript,loops,Javascript,Loops,这应该很容易,但如果我有语法的话,我显然很可笑 var elems = document.getElementsByTagName("details"); function openAll() { for (var i = 0; i < elems.length; i++){ elems[i].setAttribute("open", "true"); } 但我想在结束前停止4个标签。我该怎么写?以下选项不起作用,或者其他各种变体也不起作用 var elems = do

这应该很容易,但如果我有语法的话,我显然很可笑

var elems = document.getElementsByTagName("details");

function openAll() {
  for (var i = 0; i < elems.length; i++){
    elems[i].setAttribute("open", "true");
  }
但我想在结束前停止4个标签。我该怎么写?以下选项不起作用,或者其他各种变体也不起作用

var elems = document.getElementsByTagName("details");

function openAll() {
  for (var i = 0; i < elems.length -4; i++){
    elems[i].setAttribute("open", "true");
  }

您做得对,但忘记检查elems.length-4是否大于0。否则,for循环将永远不会执行

你可能想要这样的东西:

var l = elems.length;
for (i = 0; i < (l > 4 ? l - 4 : l; i++) {
   elems[i].setAttribute("open", "true");
}

此循环将跳过最后四个元素,但前提是总共有四个以上的元素。

这可能会对您有所帮助。请看这个片段

var elems=document.getElementsByTagNamep; 函数openAll{ 对于变量i=0;ihello

hello

hello

hello

hello

hello

hello


hello

顺便说一句,使用DOM的代码看起来更像web浏览器的JavaScript,而不是ASP。你想让这段代码在哪里运行?有30多个元素。。。运行我的代码而不检查会打开所有标记。运行代码不会打开任何东西?非常困惑。啊,没关系。我执行了许多其他方法,这些方法在视觉上改变了页面,使我觉得代码不起作用。这个片段很好用。。。现在修复它下面的其他内容。@Ulf这确实是纯客户端JavaScript,OP出于某种原因没有费心寻找合适的标记。这与ASP无关。以后请正确标记。