为了账号安全,请及时绑定邮箱和手机立即绑定

如何将值从一个函数传递到另一个函数

如何将值从一个函数传递到另一个函数

慕工程0101907 2022-09-23 21:40:21

 var boxes = document.getElementsByName('toggle');


  function markPreceding() {

    var curIndex = null;

    for (var j = 0; j < boxes.length; j++) {

      if (boxes[j].checked) {

        curIndex = j;

      }

    }

  }


  function checkInputs() {

    for (var k = 0; k <= curIndex.length; k++) {

      boxes[k].checked = true;

    }

  }


  for (var i = 0; i <= boxes.length; i++) {

    boxes[i].onchange = markPreceding;

    boxes[i].onchange = checkInputs;

  }

<input type="checkbox" id="product-1" name="toggle">

<input type="checkbox" id="product-2" name="toggle">

<input type="checkbox" id="product-3" name="toggle">

<input type="checkbox" id="product-4" name="toggle">

<input type="checkbox" id="product-5" name="toggle">

在将此“库索引”值传递到检查输入函数时遇到问题。这应该在检查输入之前检查输入,并获取其值来执行此操作。

此项目只需要 ES5 合成器。


查看完整描述

1 回答

?
Cats萌萌

TA贡献1487条经验 获得超9个赞

编辑:ES5 语法方式


const boxes = document.getElementsByName('toggle');


boxes.forEach(function(box, I) {

  box.onclick = function(e) {

    markPreceding(i);

  };

});


function markPreceding(i) {

  for (var j = 0; j < boxes.length; j++) {

    if(j <= i) {

      document.getElementById('product-' + (j + 1)).checked = true;

    } else {

      document.getElementById('product-' + (j + 1)).checked = false;

    }

  }

}

源语言:


尝试使用这个:


const boxes = document.getElementsByName('toggle');


boxes.forEach((box, i) => {

  box.onclick = (e) => {

    markPreceding(i);

  };

});


function markPreceding(i) {

  for (var j = 0; j < boxes.length; j++) {

    if(j <= i) {

      document.getElementById(`product-${j + 1}`).checked = true;

    } else {

      document.getElementById(`product-${j + 1}`).checked = false;

    }

  }

}

由于某种原因,通过 返回的数组更新输入似乎存在问题。不知道为什么,但此代码已经过验证。请参阅此处的工作示例。NodeListdocument.getElementsByName


查看完整回答
反对 回复 3天前
  • 1 回答
  • 0 关注
  • 7 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信