在 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(','));
我列出了 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(','));