使用array.join()内爆类名数组javascript

使用array.join()内爆类名数组javascript,javascript,html,css,arrays,Javascript,Html,Css,Arrays,我有一些html标记,我正在尝试使用javascript数组加入它们 我已尝试打印出阵列,以查看其外观。如果它尝试打印出一个数组项,它可以工作,但整个数组不显示 单击按钮将数组元素合并为字符串 试试看 香蕉 橙色 Appl 函数myFunction{ var fruits=document.queryselectoral.demo[]; var y=document.getElementByIddemo; y、 innerHTML=fruits.join','; } 我不确定在查询选择器代码

我有一些html标记,我正在尝试使用javascript数组加入它们

我已尝试打印出阵列,以查看其外观。如果它尝试打印出一个数组项,它可以工作,但整个数组不显示

单击按钮将数组元素合并为字符串

试试看 香蕉

橙色

Appl

函数myFunction{ var fruits=document.queryselectoral.demo[]; var y=document.getElementByIddemo; y、 innerHTML=fruits.join','; }
我不确定在查询选择器代码的末尾添加[]是为了做什么;如果你是这么想的话,这并不能把它变成一个数组。document.querySelectorAll返回HTML元素的集合,但不返回实际数组。要转换它,您有一些选项。您可以这样做:

var fruits=[…document.queryselectoral.demo]

。。。是spread运算符,它将结果集合展开到新数组中。或者您可以这样做:

var fruits=Array.fromdocument.querySelectorAll.demo

当然,您也可以手动循环集合并推送到数组,但我不建议这样做


另外,由于spread运算符和Array.from方法都来自ES6,我建议切换到使用let或const而不是var,因为它们具有块范围,并且在const的情况下,常量值强制比旧var的函数范围有用得多。

我不确定通过添加[]到查询选择器代码的末尾;如果你是这么想的话,这并不能把它变成一个数组。document.querySelectorAll返回HTML元素的集合,但不返回实际数组。要转换它,您有一些选项。您可以这样做:

var fruits=[…document.queryselectoral.demo]

。。。是spread运算符,它将结果集合展开到新数组中。或者您可以这样做:

var fruits=Array.fromdocument.querySelectorAll.demo

当然,您也可以手动循环集合并推送到数组,但我不建议这样做

此外,由于spread运算符和Array.from方法都来自ES6,我建议切换到使用let或const而不是var,因为它们具有块范围,在const的情况下,常量值强制比旧var的函数范围更有用

这将包含所有元素


这将包含所有元素

queryselector all返回节点列表。在使用join之前,您需要将其转换为数组。

querySelectorAll返回节点列表。在使用join之前,您需要将其转换为数组。

这很有效

函数myFunction{ var el=document.getElementsByClassNamedemo; var fruits=Object.keysel。 过滤函数{ 返回el[v].innerText!==未定义; } .mapfunctionv,i,o{ 返回el[v].innerText } 参加 苹果; document.getElementByIddemo.innerHTML=水果; } 单击按钮将数组元素合并为字符串

试试看 香蕉

橙色

Appl

这管用

函数myFunction{ var el=document.getElementsByClassNamedemo; var fruits=Object.keysel。 过滤函数{ 返回el[v].innerText!==未定义; } .mapfunctionv,i,o{ 返回el[v].innerText } 参加 苹果; document.getElementByIddemo.innerHTML=水果; } 单击按钮将数组元素合并为字符串

试试看 香蕉

橙色

Appl


document.querySelectorAll返回集合而不是数组。您需要使用Array.from转换为数组

函数myFunction{ var fruits=document.queryselectoral.demo;//输出一个集合 //更改为数组 var fruitArray=Array.fromfruits.mapel=>el.textContent; var y=document.getElementByIddemo; y、 innerHTML+=fruitArray.join','; } 单击按钮将数组元素合并为字符串

试试看 香蕉

橙色

Appl


document.queryselectoral返回集合而不是数组。您需要使用Array.from转换为数组

函数myFunction{ var fruits=document.queryselectoral.demo;//输出一个集合 //更改为数组 var fruitArray=Array.fromfruits.mapel=>el.textContent; var y=document.getElementByIddemo; y、 innerHTML+=fruitArray.join','; } 单击按钮将数组元素合并为字符串

试试看 香蕉

橙色

Appl

试一试

函数myFunction{ 风险值=[]; document.queryselectoral.demo.forEachx=>fruits.pushx.innerText; demo.innerHTML=fruits.join`,`; } 单击按钮将数组元素合并为字符串

试试看 香蕉

橙色

Appl

试试看

函数myFunction{ 风险值=[]; document.queryselectoral.demo.forEachx=>fruits.pushx.innerText; demo.innerHTML=fruits.join`,`; } 单击按钮将数组元素合并为字符串

试试看 香蕉

橙色

Appl


var fruits=document.queryselectoral.demo[];-你希望这能做什么?我无法识别语法,当我在console.var fruits=document.querySelectorAll.demo[]中尝试类似的构造时,它似乎给了我一个语法错误你希望这能做什么?我不认识语法,当我在控制台中尝试类似的构造时,它似乎给了我一个语法错误。请注意,虽然Array.from和spread语法使它更容易,但您不需要ES6语法来从类似数组的对象获取真正的数组。您还可以执行var fruits=Array.prototype.slice.applynull、document.queryselectoral.demo;这在ES5中工作得很好。请注意,虽然Array.from和spread语法使其更容易,但您不需要ES6语法就可以从类似数组的对象中获得真正的数组。您还可以执行var fruits=Array.prototype.slice.applynull、document.queryselectoral.demo;这在ES5中效果很好。在工作解决方案的同时提供一个解释,这样OP和其他未来读者就可以理解您更改的原因。在工作解决方案的同时提供一个解释,这样OP和其他未来读者就可以理解您更改的原因,这是很有帮助的。
var fruits = document.querySelectorAll(".demo")
function myFunction() {
  var fruits = [];
  document.querySelectorAll(".demo").forEach(x=>fruits.push(x.innerText));  
  demo.innerHTML = fruits.join`,`;
}