2015-11-06 2 views
0

мне нужно извлечь определенное значение из HTML страницы - соответствующий контент HTML, как показано ниже:Разбор данных из HTML на основе строки

-html -- 

<table border=0 cellspacing='1' cellpadding='0' class="content-denote"  width="965" > 
         <tr height=17><td align=left class="text21"><b>Sensex : 26326.60 
            [22.40] 

            <img src="../images/arow_green.jpg" width="14" height="12"> 




            &nbsp;&nbsp;&nbsp; Nifty : 7970.05 [14.60] 
            <img src="../images/arow_green.jpg" width="14" height="12"> 

-- end of html -- 

Значение Мне нужно извлечь это значение, которое появляется после "Nifty:" - в приведенном выше пример '7970.05'.

У меня есть следующий код для извлечения этого:

--code--

$('td.text21').each(function() { 
        status = true; 
        var price1 = $(this).text().substr(340,7); 

--end кода -

однако иногда я заметил, что место значение не равно 340 - оно иногда изменяется до 303, потому что ссылка img src изменяется в зависимости от некоторых значений.

Значение всегда будет после «Nifty:» - это никогда не изменяется.

Есть ли способ, где я могу код для извлечения значения 7 цифр, который появляется после того, как «Nifty:»?

Любая помощь будет оценена по достоинству.

ответ

1

Вместо того, чтобы взять подстроку из 340, вы можете взять его с позиции после того, как, где «Острота:» это, что вы получаете, делая

$(this).text().indexOf("Nifty :") + 7; // 7 is the length of "Nifty :" 

Так что ваша новая линия будет:

var price1 = $(this).text().substr($(this).text().indexOf("Nifty :") + 7, 7); 
+0

спасибо тонну. работает отлично. –