如何使用从 DOM 中检索到的值拆分数组
How to split an array with retrieved values from DOM
我从 table 中检索了来自单个列的值,我最终将其存储在一个数组中;但是所有数据都存储在一个索引中,我还没有成功地用 .split.
拆分数组
第 1 步 -- 我的目标是 body 和 tr.
var stuff = document.getElementById('pricetable').querySelectorAll('tbody tr');
第 2 步 -- 我启动 for-loop:
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是一个数组(我verified),所有的值都保留在price_list[0]中。它打印如下:
["2400"]
["1900"]
["9790"]
["1098"]
["1289"]
["3284"]
如果在这种情况下 split 不起作用,我是否需要遍历这些值?如果是这样,如何?或者我应该采取不同的行动方案吗?我所做的研究解释了 split 如何处理未从 DOM.
检索到的预定义字符串
首先,这是完全没有必要的...
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;
});
这从 Array.prototype
中借用了 .map()
函数,它为您提供了一个新数组,其中包含您从回调中返回的任何值。
如果这不是您想要的,那么您需要具体描述您想要的是什么,而不是仅仅显示不符合您要求的代码。
我从 table 中检索了来自单个列的值,我最终将其存储在一个数组中;但是所有数据都存储在一个索引中,我还没有成功地用 .split.
拆分数组第 1 步 -- 我的目标是 body 和 tr.
var stuff = document.getElementById('pricetable').querySelectorAll('tbody tr');
第 2 步 -- 我启动 for-loop:
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是一个数组(我verified),所有的值都保留在price_list[0]中。它打印如下:
["2400"]
["1900"]
["9790"]
["1098"]
["1289"]
["3284"]
如果在这种情况下 split 不起作用,我是否需要遍历这些值?如果是这样,如何?或者我应该采取不同的行动方案吗?我所做的研究解释了 split 如何处理未从 DOM.
检索到的预定义字符串首先,这是完全没有必要的...
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;
});
这从 Array.prototype
中借用了 .map()
函数,它为您提供了一个新数组,其中包含您从回调中返回的任何值。
如果这不是您想要的,那么您需要具体描述您想要的是什么,而不是仅仅显示不符合您要求的代码。