Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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_Regex_Object_Html Table - Fatal编程技术网

JavaScript:如何在字符之间推送字符串?

JavaScript:如何在字符之间推送字符串?,javascript,html,regex,object,html-table,Javascript,Html,Regex,Object,Html Table,我正试图从一个看起来像这样的网站上搜集数据。它在一个td中有4行信息,我需要帮助,我希望最终结果在JSON文件中如下所示: { "mainTitle" : "Main Title" "subTitle" : "Sub Title here" "address1" : "Address Part One" "address2" : "Address Part Two" "postalCode" : "666666" "telNo" : "12345678" } HTML: 您可以通过

我正试图从一个看起来像这样的网站上搜集数据。它在一个td中有4行信息,我需要帮助,我希望最终结果在JSON文件中如下所示:

{
 "mainTitle" : "Main Title"
 "subTitle" : "Sub Title here"
 "address1" : "Address Part One"
 "address2" : "Address Part Two"
 "postalCode" : "666666"
 "telNo" : "12345678"
}
HTML:


您可以通过使用新行字符拆分文本来获取这些值

function parseInfo () {
  const result = {};
  const enterRow = $('.contentpage > table').first().find('tr');
  result.mainTitle = enterRow.eq(0).text().trim();
  result.subTitle = enterRow.eq(1).find('td > strong').text().trim();
  let elements = enterRow.eq(1).find('td').text().trim().split('\n');
  let filteredElements = elements.filter(val => val.replace(/\s/g, '').length).map(val => val.trim());
  result.addressOne = filteredElements[1];
  result.addressTwo = filteredElements[2];
  result.addressCode = filteredElements[3];
  result.telNumber = filteredElements[4];
  return result;
}

我的小提琴:

试着像这样分割TD

var row_items = enterRow.split("<br>")

为您想要获取的每个元素添加一个ID,然后通过其ID调用该元素并获取其innerHTML。如果你想要一个例子,请让我知道。我试图从中获取的HTML不是我的,它是一个公共网站。它的格式就像我上面写的那样。也许你应该抓取整个
td
,其中包括字幕(不仅仅是
strong
),然后执行字符串操作来检索其余的信息。
function parseInfo () {
  const result = {};
  const enterRow = $('.contentpage > table').first().find('tr');
  result.mainTitle = enterRow.eq(0).text().trim();
  result.subTitle = enterRow.eq(1).find('td > strong').text().trim();
  let elements = enterRow.eq(1).find('td').text().trim().split('\n');
  let filteredElements = elements.filter(val => val.replace(/\s/g, '').length).map(val => val.trim());
  result.addressOne = filteredElements[1];
  result.addressTwo = filteredElements[2];
  result.addressCode = filteredElements[3];
  result.telNumber = filteredElements[4];
  return result;
}
var row_items = enterRow.split("<br>")
for (var i = 0; i < row_items.length; i++) {
    row_items[i] = row_items[i].replace("<strong>", "").replace("</strong>", "").replace(/"/g, "")
}
result = {}
result["mainTitle"] = row_items[0]
result["subTitle"] = row_items[1]
...