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

时间:2017-08-06 16:35:35

标签: javascript jquery greasemonkey

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

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

2 个答案:

答案 0 :(得分:1)

迭代并生成合并结果。

library(data.table)
setDT(df1)[, (6:8) := lapply(.SD, cumsum), ID, .SDcols = parent:child]
df1
#    ID time status chg help parent married child
# 1:  1    0      P   0    .      0       0     0
# 2:  1    1      P   0    .      0       0     0
# 3:  1    2      P   1    .      0       0     0
# 4:  1    3      M   0    P      1       0     0
# 5:  1    4      M   0    .      1       0     0
# 6:  1    5      M   0    .      1       0     0
# 7:  1    5      M   0    .      1       0     0
# 8:  2    0      P   0    .      0       0     0
# 9:  2    1      P   1    .      0       0     0
#10:  2    2      L   0    P      1       0     0
#11:  2    3      L   0    .      1       0     0
#12:  2    4      L   1    .      1       0     0
#13:  2    5      M   0    L      1       1     0
#14:  2    6      M   0    .      1       1     0

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

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('')
)

答案 1 :(得分:0)

您需要遍历列表并撰写必需的HTML字符串:

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