Javascript forEach方法';嵌套的console.log函数?

Javascript forEach方法';嵌套的console.log函数?,javascript,arrays,dom,foreach,Javascript,Arrays,Dom,Foreach,我有一个forEach方法,它为数组中的每个元素返回一个console.log()。 如果将模板文本放入其中,则会在控制台中打印: [object HTMLLIElement]而不是对对象的正确求值“…” const container=document.querySelector(“开始”); 设sel=container.queryselectoral(“.sel”); //以下是它应该做的工作: //sel.forEach((元素,位置)=>console.log(元素,位置)); //

我有一个forEach方法,它为数组中的每个元素返回一个console.log()。 如果将模板文本放入其中,则会在控制台中打印:
[object HTMLLIElement]而不是对对象的正确求值
  • …”
  • const container=document.querySelector(“开始”);
    设sel=container.queryselectoral(“.sel”);
    //以下是它应该做的工作:
    //sel.forEach((元素,位置)=>console.log(元素,位置));
    //然而,这并非如此
    sel.forEach((element,pos)=>console.log(`${element}+${pos}')//并打印“[object HTMLLIElement]+0”
    
    
      瓦洛雷1号 瓦洛雷2号 瓦洛雷3号
    • 瓦洛雷4号
    • 瓦洛雷5号

    使用模板文本强制调用
    元素
    引用,该引用作为
    [object htmlilement]
    返回

    发件人:

    如果此方法未在自定义对象中重写,则为toString() 返回“[对象类型]”,其中type是对象类型

    如果没有模板文本,则由浏览器呈现值,该值返回调用的隐式结果并返回元素的未解析HTML

    const div=document.querySelector(“div”);
    console.log(div);//隐式.valueOf()调用
    console.log(div.valueOf());//Explicit.valueOf()调用
    const el=div;
    console.log(`${div}`);//隐式.toString()调用
    console.log(div.toString());//Explicit.toString()调用

    test
    您可以插入元素的
    outerHTML

    const container=document.querySelector(“开始”);
    设sel=container.queryselectoral(“.sel”);
    sel.forEach((element,pos)=>console.log(`${element.outerHTML}+${pos}')
    
    
    
      瓦洛雷1号 瓦洛雷2号 瓦洛雷3号
    • 瓦洛雷4号
    • 瓦洛雷5号

    console.log
    (在浏览器中),专门处理HTMLElements并为其提供交互式菜单。通过将它们转换为带有模板文字的字符串,您将失去这种能力。如果还想记录位置,可以尝试
    console.log(element,“+”,pos)
    “而不是正确计算对象”这是什么意思?您正在对一个对象执行toString()。我在修改对该问题的编辑时遇到了问题,因为在我尝试提交更改时,其他人也对其进行了更正—我说的是控制台中显示的正确计算“
  • …”(当我运行运行sel.forEach((element,pos)=>console.log(element,pos))时);我不认为我或@iota的答案是精英主义的。我认为我已经把一个相当全面的答案与相关资源的链接放在一起,让你完全了解正在发生的事情以及如何得到你想要的东西。(让我感到不安的是,在注意到问题的表述方式存在一些错误之后,我还没有完成对问题的修改,而否决票马上就来了……甚至在我提交修改之前)