我正在尝试创建一个Greasemonkey脚本,用于复制一些<li>
元素的innerHTML
,但是由于它们是节点列表,因此我无法完成此操作。
var list = document.querySelectorAll(".bx li");
GM_setClipboard(list.innerHTML)
我正在尝试创建一个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);
var list = document.querySelectorAll(".bx li");
var html = "";
for(var n = 0; n < list.length; ++n)
html += list[n].outerHTML;
li
执行何种操作,都应首先迭代整个列表,然后对每个节点执行操作。 - Koushik Chatterjee