首页 > 解决方案 > 如何获得元素的零件?

问题描述

我现在正在为一个事件过程的网站做结构化数据,这个网站的信息如下:

<div class="schedule">
  <p><span class="fwb">Date</span>: 22-Nov(Friday) 15:00-17:00</p>
  <p><span class="fwb">Location</span>: ABC Street</p>
</div>

我想使用该getElement方法为startDate

"startDate": "{{data}}" -->

"startDate": "2019-11-22T15:00"

我预计 11 月 22 日(星期五)15:00-17:00 的输出为 2019-11-22T15:00

"streetAddress": "{{data}}"  --->

"streetAddress": "ABC Street" 

等等

有可能的?非常感谢

*备注:我无权更改源页面,因为我只是一个谷歌标签管理器管理员

标签: javascriptdata-structures

解决方案


  1. 使用正则表达式查找日期和地址(以 : 开头,以换行符结尾)
  2. 使用 toISOString() 方法转换日期

let data=document.querySelector(".schedule").innerHTML
let patt=/:.*/
let startDate=data.split('</p>')[0].match(patt)[0].slice(2)
let address=data.split('</p>')[1].match(patt)[0].slice(2)
let date = new Date(startDate.slice(0,20)+new Date().getFullYear()); 
let isoDate = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString().slice(0,16);
document.querySelector(".output").innerHTML="StartDate=> {"+isoDate+"}<br/>Address=> {"+address+"}"
<div class="schedule">
     <p><span class="fwb">Date</span>: 22-Nov(Firday) 15:00-17:00</p>
     <p><span class="fwb">Location</span>: ABC Street</p>
</div>    

<div class="output"></div>
    

阅读更多:


推荐阅读