Javascript函数仅从getElementsByClassName获取所有元素

时间:2018-11-26 17:20:22

标签: javascript getelementsbyclassname

首先,我看了一堆看似相关的问题,这些问题与我的问题没有直接关系:

javascript getElementsByClassName from javascript variable

getElementsByClassName doesn't select all my Navigation elements

Javascript: getElementsByClassName not giving all elements

Javascript document.getElementsByClassName not returning all elements

How to change class for all elements retrieved by document.getElementsByClassName

getElementsByClassName vs. jquery

如果还有其他问题已经解决了我的特定问题,我深表歉意,请直接将我引导到那里。

我正在尝试从以下页面中提取开行数据和当前行数据:https://www.sportsbookreview.com/betting-odds/ncaa-basketball/,并且它仅返回特定游戏子集的数据。代码如下。

convertHalfLines = stringVal => {
  let val
  let halfLine = false
  if (stringVal.substr(-1) === '\u00BD') {
    val = parseFloat(stringVal.slice(0,-1))
    halfLine = true
  } else {
    val = parseFloat(stringVal)
  }
  return halfLine ? val + (Math.sign(val) * 0.5) : val
}

let games = document.getElementsByClassName("_3A-gC")
let gameInfo = Object.keys(games).map(game => {
  let teams = games[game].getElementsByClassName("_3O1Gx")
  let currentLines = games[game].getElementsByClassName("_3h0tU")

  console.log('currentLines',currentLines)

  return {
    'homeTeam': teams[1].innerText,
    'awayTeam': teams[0].innerText,
    'homeWagerPct': parseFloat(currentLines[1].innerText),
    'awayWagerPct': parseFloat(currentLines[0].innerText),
    'homeOpeningLine': convertHalfLines(currentLines[3].getElementsByClassName('_3Nv_7')[0].innerText),
    'awayOpeningLine': convertHalfLines(currentLines[2].getElementsByClassName('_3Nv_7')[0].innerText),
    'homeCurrentLine': convertHalfLines(currentLines[5].getElementsByClassName('_3Nv_7')[0].innerText),
    'awayCurrentLine': convertHalfLines(currentLines[4].getElementsByClassName('_3Nv_7')[0].innerText),
  }
})

代码返回一组特定游戏的数据,这些数据本身并不一致。有时它返回前六个游戏的数据,有时返回前八个游戏的数据,有时小于或大于这些数据。是否有我不知道的关于JS的我不知道的东西,或者还在发生其他事情?

0 个答案:

没有答案