簡體   English   中英

如何使用jQuery將元素的數據傳遞給Array?

[英]How can I get element's data to Array with jQuery?

這是一張table

<table>
  <tr data-id="1">xxx</tr>
  <tr data-id="2">xxx</tr>
  <tr data-id="3">xxx</tr>
  <tr data-id="4">xxx</tr>
  <tr data-id="5">xxx</tr>
  <tr data-id="6">xxx</tr>
</table>  

我想得到每個trdata-id
我知道如何用$.each獲得它,我知道這可以做到:

var trArray = [];
$.each($('table tr'), function () {
  trArray.push($(this).data('id'));
})  

$('table tr').data('id')只能獲得第一個trdata-id但是這樣做是否容易和優雅呢?
用jQuery或js用一句話來獲取data-id的數組[1,2,3,4,5,6]

嘗試使用$.map()

var data = $.map($("table tr"), function(el) {return $(el).data().id})

這是另一個使用純js的選項。

var toarray = function(e){ return [].slice.call(e) }
var ids = toarray(document.querySelectorAll("tr")).map(function(e){return e.dataset.id});

 var getIds = function() { var toarray = function(e){ return [].slice.call(e) } var ids = toarray(document.querySelectorAll("tr")).map(function(e){ return e.dataset.id; }); alert(ids) }; document.addEventListener("DOMContentLoaded", getIds); 
 <table> <tr data-id="1">xxx</tr> <tr data-id="2">xxx</tr> <tr data-id="3">xxx</tr> <tr data-id="4">xxx</tr> <tr data-id="5">xxx</tr> <tr data-id="6">xxx</tr> </table> 

如果你願意,你可以“簡單地”這樣做

var ids = [].slice.call(document.querySelectorAll("tr")).map(function(e){return e.dataset.id});

 var getIds = function() { var ids = [].slice.call(document.querySelectorAll("tr")).map(function(e){return e.dataset.id}); alert(ids) }; document.addEventListener("DOMContentLoaded", getIds); 
 <table> <tr data-id="1">xxx</tr> <tr data-id="2">xxx</tr> <tr data-id="3">xxx</tr> <tr data-id="4">xxx</tr> <tr data-id="5">xxx</tr> <tr data-id="6">xxx</tr> </table> 

這是jQuery選項:

var ids = $.map($("tr"),function(e){return e.dataset.id});

 var getIds = function() { var ids = $.map($("tr"),function(e){return e.dataset.id}); alert(ids); }; document.addEventListener("DOMContentLoaded", getIds); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr data-id="1">xxx</tr> <tr data-id="2">xxx</tr> <tr data-id="3">xxx</tr> <tr data-id="4">xxx</tr> <tr data-id="5">xxx</tr> <tr data-id="6">xxx</tr> </table> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM