【问题标题】:how to combine html nodeList from multiple get elements如何组合来自多个get元素的html nodeList
【发布时间】:2020-07-08 15:12:55
【问题描述】:

我想组合html elements 并使用array method 从中获取值是否有这样做,我想我不知道如何将它组合为nodeList

所以我使用 get elements 然后 array.unshift 将元素添加到一个变量中

var elemsLabel = document.querySelectorAll('[id$="LabelSet"]')
// TO achieve something like
// elemsLabel.unshift(document.getElementById('SubHeader'))
// elemsLabel.unshift(document.getElementById('Header'))

// This what I have tried so far
elemsLabel += Array.from(elemsLabel).unshift(document.getElementById('SubHeader'))
elemsLabel += Array.from(elemsLabel).unshift(document.getElementById('Header'))
// I think I stuck only this above part, so below after 'var values'_
// is the reason I need to combine them into one variable

console.log(elemsLabel)

var values = []
for (var z = 0; z < elemsLabel.length; z++) {
  values[z] = elemsLabel[z].value
}

console.log(values)
<input type="text" id="Header" value="head">
<input type="text" id="SubHeader" value="SubHeader">

<input type="text" id="docMyNameLabelSet" value="Name">
<input type="text" id="docMyIdLabelSet" value="Id">
<input type="text" id="docMyAddressLabelSet" value="Address">

所以结果应该像['head','SubHeader','Name','Id','Address']

提前谢谢你

【问题讨论】:

    标签: javascript html arrays google-apps-script web-applications


    【解决方案1】:

    代码使用+=operator 将elemsLabel 转换为字符串。在节点列表上使用扩展运算符(...)将其转换为数组。同样.unshift() 不会返回未移位的数组,而是返回添加的元素数。

    var elemsLabel = [...document.querySelectorAll('[id$="LabelSet"]')]
    elemsLabel.unshift(document.getElementById('SubHeader'))
    elemsLabel.unshift(document.getElementById('Header'))
    console.log(elemsLabel)
    
    /*var values = []
    for (let z = 0; z < elemsLabel.length; z++) {
      values[z] = elemsLabel[z].value
    }
    
    console.log(values)*/
    console.log(elemsLabel.map(e => e.value))
    <input type="text" id="Header" value="head">
    <input type="text" id="SubHeader" value="SubHeader">
    
    <input type="text" id="docMyNameLabelSet" value="Name">
    <input type="text" id="docMyIdLabelSet" value="Id">
    <input type="text" id="docMyAddressLabelSet" value="Address">

    【讨论】:

    • 这太棒了,我学到了 [... ] 对我来说是新事物。非常感谢
    • @zummontt var elemsLabel = Array.from(document.querySelectorAll('[id$="LabelSet"]')) 应该是一样的。你只是弄乱了语法。
    • 哦!这就是为什么。我已经习惯了
    猜你喜欢
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多