将 innerHTML 从多个 <li> 元素复制到剪贴板

Copy innerHTML to clipboard from multiple <li> elements

我正在尝试创建一个 greasemonkey 脚本来复制某些 <li> 元素的 innerHTML,但我无法这样做,因为它是一个节点列表。

var list = document.querySelectorAll(".bx li");
GM_setClipboard(list.innerHTML)

迭代并生成组合结果。

var list = document.querySelectorAll(".bx li");
GM_setClipboard(
  // convert nodelist to array
  // for older browser use [].slice.call(list)
  Array.from(list)
  // iterate and get HTML content
  .map(function(e) {
    return e.innerHTML;
  })
  // combine the HTML contents
  .join('')
)

或者,我们可以简单地使用 for 循环,这样会更好,因为我们不需要创建额外的数组。

var list = document.querySelectorAll(".bx li");

// initialize string variable for HTML
var html = '';

// iterate over the nodelist using for loop
for (var i = 0; i < list.length; i++) {
  // append the HTML content to the string variable
  html += list[i].innerHTML;
}

GM_setClipboard(html);

您需要遍历列表并编写所需的 HTML 字符串:

var list = document.querySelectorAll(".bx li");
var html = "";
for(var n = 0; n < list.length; ++n) 
   html += list[n].outerHTML;