数组:通过javascript将表数据转换为数组

时间:2016-06-13 09:17:47

标签: javascript jquery html arrays

例如,我在HTML中有以下内容:

<table>
<tr>
<td class="getId">123</td>
</tr>
<tr>
<td class="getId">345</td>
</tr>
</table>

我想创建一个for循环来遍历所有的类名&#34; getId&#34;并将单词存储在数组中,以便输出

  

var new = [&#39; 123&#39;,&#39; 345&#39;];

我该怎么做?

5 个答案:

答案 0 :(得分:4)

使用jQuery map() get() 方法

&#13;
&#13;
// iterate and generate custom element object
var res = $('.getId').map(function() {
  // get text 
  return $(this).text()
  // get result as array
}).get();

console.log(res);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td class="getId">123</td>
  </tr>
  <tr>
    <td class="getId">345</td>
  </tr>
</table>
&#13;
&#13;
&#13;

使用纯JavaScript使用 getElementsByClassName() 获取所有元素并使用 Array.from() 将其转换为数组。要生成文本数组,请使用 Array#map()

&#13;
&#13;
var res = Array.from(document.getElementsByClassName('getId')).map(function(ele) {
  return ele.textContent;
})

console.log(res);
&#13;
<table>
  <tr>
    <td class="getId">123</td>
  </tr>
  <tr>
    <td class="getId">345</td>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

你可以使用,

var arr = $(".getId").map(function() {
  return $(this).text();
}).get();

Fiddle

答案 2 :(得分:2)

仅使用javascript

var x = document.getElementsByClassName('getId');
var _myArray =[]
for(var i=0;i<x.length;i++){
_myArray.push(x[i].textContent);
}
console.log(_myArray)

注意:您也可以使用innerHTML代替textContent

JSFIDDLE

要使用数组的forEach属性,您可以将nodelist转换为数组

var x = document.getElementsByClassName('getId'); // document.querySelectorAll
var m =[].slice.call(x);
m.forEach(function(item){
_myArray.push(item.innerHTML)
})

答案 3 :(得分:1)

您可以使用jquery作为

进行迭代
var values = [];
$("td.getId").each(function(){
  values.push($(this).html());
});

<强>样本

 var values = [];
    $("td.getId").each(function(){
      values.push($(this).html());
    });

console.log(values)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td class="getId">123</td>
</tr>
<tr>
<td class="getId">345</td>
</tr>
</table>

答案 4 :(得分:1)

使用没有Jq的Js:)

<body>
    <table>
        <tr>
            <td class="getId">123</td>
        </tr>
        <tr>
            <td class="getId">345</td>
        </tr>
    </table>
</body>
<script>
    var val = [];
    var list = document.getElementsByClassName("getId");
    for (var i = 0; i < list.length; i++) {
        val.push(list[i].innerHTML)
    }
    console.log(val)
</script>