Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将每个返回的类转换为数组_Javascript_Html_Class - Fatal编程技术网

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

下面的代码返回网站中的每一行。每行最多包含8行地址。我希望能够将每个地址的每一行,每个地址转换成一个数组

我是JavaScript新手,因此非常感谢您的帮助:)


地址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);
    }