Javascript 如何将每个返回的类转换为数组
下面的代码返回网站中的每一行。每行最多包含8行地址。我希望能够将每个地址的每一行,每个地址转换成一个数组 我是JavaScript新手,因此非常感谢您的帮助:)Javascript 如何将每个返回的类转换为数组,javascript,html,class,Javascript,Html,Class,下面的代码返回网站中的每一行。每行最多包含8行地址。我希望能够将每个地址的每一行,每个地址转换成一个数组 我是JavaScript新手,因此非常感谢您的帮助:) 地址1 地址2 地址3 地址4 地址5 邮政编码 电话 电子邮件 地址1 地址2 地址3 地址4 地址5 邮政编码 电话 电子邮件 for(变量i=0;ii.innerText.trim()); }); 控制台日志(res) 地址1 地址2 地址3 地址4 地址5 邮政编码 电话 电子邮件 地址1 地址2 地址3 地址4 地址5
地址1
地址2
地址3
地址4
地址5
邮政编码
电话
电子邮件
地址1
地址2
地址3
地址4
地址5
邮政编码
电话
电子邮件
for(变量i=0;i
您可以尝试使用
Document方法返回一个静态(非活动)节点列表,表示与指定选择器组匹配的文档元素列表
及
该方法创建一个新数组,其中填充了对调用数组中的每个元素调用所提供函数的结果
请尝试以下方法:
var listP=document.querySelectorAll('.classname');
var res=Array.from(listP).map(函数(el){
返回Array.from(el.querySelectorAll('[class^=row]').map(i=>i.innerText.trim());
});
控制台日志(res)代码>
地址1
地址2
地址3
地址4
地址5
邮政编码
电话
电子邮件
地址1
地址2
地址3
地址4
地址5
邮政编码
电话
电子邮件
您应该使用DOM API:
或者去图书馆
然而,这里解释了一个DOM解决方案
//选择所有具有“行”属性的项,即
//因为我们在文档中调用它,所以它与整个html页面匹配
const rowNodes=document.querySelectorAll('div[row]');
常量地址=[];
for(让rowNode中的rowNode){
//选择具有值为“row1”或“row2”或“row3”的类属性的所有。。。
//因为我们在rowNode上调用它,所以它只匹配其子代
让addresseNodes=rowNode.querySelectorAll('div[class^=“row”]”);
让rowAddresses=[];
for(让addresseNodes的addressNode){
//您可能需要.innerText
rowAddresses.push(addressNode.innerHTML);
}
地址。推送(行地址);
}
//返回地址;
Check out抱歉,我在键入HTML时出错。类名相同,但行号会更改。我已修正这项质询。“这个方法还能用吗?”布拉德利史密斯,当然,这个解决方案会起作用<代码>[class^=classNameStartsWith]
将匹配以提供的字符串开头的类名。虽然document.querySelectorAll('.classname')
在这种情况下就足够了。我已经更新了答案,请检查:)
<div class="classname" row="0" style="top:0px">
<div class="row1" title> Address 1 </div>
<div class="row2" title> Address 2 </div>
<div class="row3" title> Address 3 </div>
<div class="row4" title> Address 4 </div>
<div class="row5" title> Address 5 </div>
<div class="row6" title> Postcode </div>
<div class="row7" title> Phone </div>
<div class="row8" title> Email </div>
</div>
<div class="classname" row="1" style="top:0px">
<div class="row1" title> Address 1 </div>
<div class="row2" title> Address 2 </div>
<div class="row3" title> Address 3 </div>
<div class="row4" title> Address 4 </div>
<div class="row5" title> Address 5 </div>
<div class="row6" title> Postcode </div>
<div class="row7" title> Phone </div>
<div class="row8" title> Email </div>
</div>
for (var i = 0; i < Address.length; i++) {
var AddAlert = Address[i].innerText;
alert(AddAlert);
}