我从一个表中检索了值,这些值来自一个列,我最终存储在一个数组中;但是所有数据都存储在一个索引中,我没有成功地用.split分割数组。
第1步 - 我的目标身体和tr。
var stuff = document.getElementById('pricetable').querySelectorAll('tbody tr');
第2步 - 我发起了一个for循环:
for (var i = 0; i < rows.length-1; i++) {
var rows2 = Array.prototype.slice.call(stuff)[i].querySelectorAll('td')[3];}
rows2现在将打印一个如下所示的字符串:
<td>2400</td>
<td>1900</td>
<td>9790</td>
<td>1098</td>
<td>1289</td>
<td>3284</td>
我认为我的问题从这里开始,因为我不知道如何将它变成一个数组并且让每个值都存储在它自己的索引中。
第3步 - 要仅检索文本,我创建了一个新变量:
var my_list = rows2.textContent;
步骤4 - 然后我尝试拆分数组:
var price_list = my_list.split(','));
虽然price_list是一个数组(I verified),但所有值都保留在price_list [0]中。它的打印方式如下:
["2400"]
["1900"]
["9790"]
["1098"]
["1289"]
["3284"]
如果在这种情况下拆分不起作用,我是否需要遍历这些值?如果是这样,怎么样?或者我应该采取不同的行动方针?我所做的研究解释了split如何使用未从DOM检索的预定义字符串。
答案 0 :(得分:2)
首先,这完全没必要......
var rows2 = Array.prototype.slice.call(stuff)[i].querySelectorAll('td')[3];
另外,你的变量命名很奇怪。当你获得第4个单元格时,为什么要调用它rows2
?
要获得第四个单元格,请执行以下操作:
var cell4 = stuff[i].cells[3];
但是如果你想要一个这些值的数组,那么就这样做。
var list = Array.prototype.map.call(stuff, function(row) {
return row.cells[3].textContent;
});
借用.map()
中的Array.prototype
函数,它为您提供了一个新的数组,其中包含您从回调中返回的任何值。
如果这不是你想要的,那么你需要具体描述它是什么,而不仅仅是显示没有做你想做的代码。