在 Javascript 中获取多值变量的连接字符串

Get concatenate string of multiple value variable in Javascript

我列出了 div

<div data-attr="sel" data-num="1"></div>
<div data-attr="notSel" data-num="2"></div>
<div data-attr="sel" data-num="3"></div>

我正在尝试仅获取字符串 div 并设置了 data-attr="sel"。

function SI_MoveTasks() {
    var getSelected = document.querySelector('[data-attr~="sel"]');
    var selectedNums = getSelected.dataset.num;
    alert(selectedNums);
}

现在我得到了 (1),我怎样才能得到连接字符串 (1,3)? 感谢支持。

您需要使用 document.querySelectorAll 来获取所有匹配的元素。 document.querySelector returns 仅第一个匹配元素,如果有 none.

则为空
function SI_MoveTasks() {
    var getSelected = document.querySelectorAll('[data-attr~="sel"]');
    console.log(getSelected);
    var selectedNums = '(';
    for(var i=0; i< getSelected.length; i++) {
        if (selectedNums !== '(') {
          selectedNums += ',';
        }
      selectedNums += getSelected[i].dataset.num;
    }
    selectedNums += ')';
    alert(selectedNums);
}
SI_MoveTasks();

这是一个工作代码,jsFiddle 是:https://jsfiddle.net/3kjye452/

演示 -> http://jsfiddle.net/0d54ethw/

使用 querySelectorAll 而不是 querySelector 因为后者只选择第一个元素而不是所有元素。

然后使用for循环如下图

var getSelected = document.querySelectorAll('[data-attr~="sel"]');
var selectedNums = [];
for (var i = 0; i < getSelected.length; i++) {
    selectedNums.push(getSelected[i].dataset.num);
}

alert(selectedNums.join(','));