Перво-наперво, я посмотрел на кучу, казалось бы, связанных вопросов, которые не имеют прямого отношения к моей проблеме:
javascript getElementsByClassName из переменной javascript
getElementsByClassName не выбирает все мои элементы навигации
Javascript: getElementsByClassName не дает все элементы
Javascript document.getElementsByClassName не возвращаетсявсе элементы
Как изменить класс для всех элементов, извлеченных document.getElementsByClassName
getElementsByClassName против 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, которого мне не хватает, или что-то еще происходит?