Как найти текст с помощью JavaScript? - PullRequest
0 голосов
/ 19 февраля 2012

Так что это мой код для поиска цены.

a = prompt("Link?") window.location = a var priceElement = document.getElementById('UserSalesTab').getElementsByTagName('tr')[1].getElementsByTagName('td')[2].getElementsByTagName('b')[0]; // Get the element that contains the price var price = parseInt(priceElement.innerHTML.match(/\d+/));

Ответы [ 4 ]

0 голосов
/ 19 февраля 2012
 function xpath(xpath, element) {
        if (!element)
            element = document;
        return document.evaluate(xpath, element, null,
                                 XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    }

var prices  = xpath("//table[@class='ItemSalesTable']/tbody/tr/td[3]");
//now prices is an array of price elements

prices.snapshotItem(0).innerHTML; // price ( ignore this one )    
prices.snapshotItem(1).innerHTML; // <b style="color: Green;">R$900</b>
prices.snapshotItem(2).innerHTML; // <b style="color: Green;">R$975</b>
prices.snapshotItem(3).innerHTML; // <b style="color: Green;">R$980</b>

prices.snapshotLength(); // 11
0 голосов
/ 19 февраля 2012

Вот как можно найти самую дешевую цену на любой странице продукта на упомянутом вами веб-сайте, где на правой странице есть список частных продаж (например, http://www.roblox.com/Red-RAWR-item?id=66330295):

if (window.location.href.match(/http:\/\/www.roblox.com\/.*?\?id=\d+/) && document.getElementById('UserSalesLink')) {
    var priceElement = document.getElementById('UserSalesTab').getElementsByTagName('tr')[1].getElementsByTagName('td')[2].getElementsByTagName('b')[0]; // Get the element that contains the price
    var price = parseInt(priceElement.innerHTML.match(/\d+/)); // Store the price as an int
}

.код, в результате вы получите переменную price, представляющую собой int, содержащую наименее дорогую цену на странице.

Я использую javascript getElementById () и метод getElementsByTagName() метод, чтобы сузить его до правого div, затем я использую метод match () , чтобы извлечь числа из этого элемента, а метод parseInt () хранить цену как целое число вместо строки.

0 голосов
/ 19 февраля 2012

Что вам нужно сделать, это убедиться, что элемент, который содержит информацию о цене (в вашем случае, тег b [который, кстати, не рекомендуется ]) имеет id или уникальный класс (подразумевается бессмысленная фраза) применяется к нему. Таким образом, мы можем нацелить этот элемент специально с помощью Javascript и извлечь его текст.

После применения id или класса ваш код должен выглядеть следующим образом:

var myElem = document.getElementById("price"),
    price = myEleme.textContent;

Первая строка присваивает элемент, на который мы нацелены, переменной myElem. Вторая строка устанавливает переменную price в текстовое значение элемента.

0 голосов
/ 19 февраля 2012

Вы отправляете сообщение на другую страницу или получаете один и тот же номер из одного и того же места всегда на одной и той же странице?Если это так, вы можете использовать.

     var myvar = document.getElementById('myfield').innerHTML;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...