JQuery - не может получить текст из span с 3 именами классов - PullRequest
1 голос
/ 13 марта 2012

Я получаю / извлекаю контент с помощью jQuery AJAX, отображаю его на странице и пытаюсь получить текст из следующего промежутка с 3 именами классов:

<span class="price eur priceData">198,91 €</span>

Как я могу получить число "198,91" из этого диапазона?

Я использую следующий код для извлечения текста (который не работает):

$("span.price.eur.priceData").text();

Вы запросили больше кода, вот оно:

$(document).ready(function() {
                Read();
            });

            function Read() {
                $.ajax({
                    url: "index.php?action=getData",
                    cache: false,
                    success: function(html){
                        if(html == "BAD") {
                            $("#my_results").empty().append("Failed!");
                        } else {
                            $("#my_results").empty().append("Successful!");
                            $("#page_content").empty().append('<xmp>'+html+'</xmp>');
                            var text=$("span.price.eur.priceData").text();
                            alert(text);
                        }
                    }
                });
            }

Я даже пытался использовать SetTimeout () и Delay (), но все еще не работал.

Решение: (спасибо Shadow Wizard)

$(html).find("span.price.eur.priceData").text();

Ответы [ 5 ]

3 голосов
/ 13 марта 2012

Это выстрел из темноты, поскольку вы не предоставили больше кода.

Если вы извлекаете данные через ajax, убедитесь, что ваш $("span.price.eur.priceData").text(); находится внутри вашего обратного вызова ajax success.

В противном случае этот элемент <span/> может быть еще не заполнен данными.

2 голосов
/ 13 марта 2012

Ваш код дает сбой, потому что вы оборачиваете содержимое HTML тегами <xmp>, представляя их как чистый текст, таким образом, jQuery не может найти там никаких элементов.

Вы можете использовать необработанное содержимое следующим образом:

$("#my_results").empty().append("Successful!");
$("#page_content").empty().append('<xmp>'+html+'</xmp>');
var text = $(html).find("span.price.eur.priceData").text();
alert(text);
1 голос
/ 13 марта 2012

Надеюсь, что вам нужно получить фактическое значение без символа «€». Проверьте это

$(document).ready(function() {
     var text=$("span.price.eur.priceData").text();
   var text1=text.split('€')[0];
    alert(text1);

});

Проверьте эту скрипку http://jsfiddle.net/Z5AKU/

0 голосов
/ 13 марта 2012

использовать любое имя класса ....
Я использовал цену .. поэтому код выглядит следующим образом:

$('.price').html();

    **or**

    $('span.price').html();
0 голосов
/ 13 марта 2012

Попробуйте с помощью .html ()

alert($("span.price.eur.priceData").html());​
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...