¿Cómo obtengo el valor correcto de una clase si el nombre de la clase se incluye varias veces? Tengo esta estructura en una página web y el valor que necesito siempre está dentro del div "auctionValue" y allí en "curreny-coins value" ("5500" en este ejemplo), pero este nombre de clase ""curreny-coins value" está disponible 60 veces en esa página. Y solo necesito el valor de "valor de subasta" -> "valor de moneda-monedas":
¿Cómo puedo acceder a este valor de clase específico dentro de la clase "auctionValue" y no obtener los 60 valores como resultado, por ejemplo, de "auctionStartPrice"? Intenté esto:
let currencyValues = []; function highlightDeal() { let currentBid = document.getElementsByClassName('currency-coins value'); for (i = 0; i < currentBid.length; i++) { currencyValues.push(currentBid[i].innerHTML); } console.log(currencyValues); } highlightDeal();pero registra una matriz de los 60 valores con ese nombre de clase.
Puede apuntar al segundo hijo usando el selector de nth-child :
document.querySelector(".auction > .auctionValue:nth-child(2) > .currency-coins.value")Manifestación:
const bid = document.querySelector(".auction > .auctionValue:nth-child(2) > .currency-coins.value").textContent; console.log(bid); <div class="auction"> <div class="auctionValue"> </div> <div class="auctionValue"> <span class="currency-coins value">5,500</span> </div> <div class="auctionValue"> </div> </div>1. Copie el selector de consulta del elemento específico en el inspector.
2. Y péguelo en el siguiente código.
const currentBid = document.querySelector("body > main > section > section > div.ut-navigation-container-view--content > div > div > section.ut-pinned-list-container.SearchResults.ui-layout-left > div > ul > li.listFUTItem.has-auction-data.selected > div > div.auction > div:nth-child(2) > span.currency-coins.value").textContent; console.log(currentBid);Además de la respuesta de Mamun para obtener todos los valores en esa página: (código de ejemplo)
function get42() { var tds = document.querySelectorAll('td'), result = []; for (var i = 0; i < tds.length; i++) { result.push(tds[i].textContent); } return result; }