数组的内容显示为[object HTMLInputElement],我不想要

时间:2017-05-23 15:22:46

标签: javascript

所以这里的功能应该是从表格中检查哪些蛋糕:

function whichCakesAreChecked() {
    var cake = document.forms[0];
    var cakesChecked = [];
    for (var i = 0; i < cake.length; i++) {
        if (cake[i].checked) {
            cakesChecked.push(cake[i]);
        }
    }
    return cakesChecked.toString();
}

我还有另一个函数,它接受whichCakesAreChecked()的输出并通过giantArray.push(whichCakesAreChecked)将它推送到一个数组中。当我尝试打印出数组时,其中CakeAreChecked()不会返回已检查的蛋糕,而是返回"[object HTMLInputElement],[object HTMLInputElement]"之类的内容。

如何更改代码以实际打印出已检查过的蛋糕?

1 个答案:

答案 0 :(得分:0)

这样的事情有帮助吗? 在这里,我们可以放置复选框名称,而不是放置复选框元素。 将复选框元素放入数组并调用toString()会产生多个[object HTMLInputElement],因为它们是HTMLInputElement类型的对象。

function myfunction() {
  var arr = [];
  var elem1 = document.getElementById('one');
  var elem2 = document.getElementById('two');
  arr.push(elem1.name);
  arr.push(elem2.name);
  console.log(arr.toString());
}
myfunction();
<label for='one'>One</label>
<input type="checkbox" id="one" checked="checked" name="one" />
<br/>
<label for='two'>Two</label>
<input type="checkbox" id="two" name="two" />