Javascript forEach方法';嵌套的console.log函数?
我有一个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(元素,位置)); //
[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的答案是精英主义的。我认为我已经把一个相当全面的答案与相关资源的链接放在一起,让你完全了解正在发生的事情以及如何得到你想要的东西。(让我感到不安的是,在注意到问题的表述方式存在一些错误之后,我还没有完成对问题的修改,而否决票马上就来了……甚至在我提交修改之前)