将 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;
我正在尝试创建一个 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;