基于字符串

时间:2015-11-06 12:11:23

标签: jquery html parsing cheerio

我需要从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 --

我需要提取的值是&#34; Nifty之后出现的值:&#34; - 在上面的 示例&#39; 7970.05&#39;

我有以下代码来提取这个:

- 代码 -

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

- 代码结束 -

但有时我注意到值的位置不是340 - 它有时会更改为303,因为img src链接会根据某些值而改变。

该值始终位于&#34; Nifty之后:&#34; - 这永远不会改变。

有没有办法可以 代码提取出现在&#34; Nifty之后的7位数值:&#34;

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

不是从340获取子字符串,而是从“Nifty:”之后的位置获取它,你可以从中获取

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

所以你的新行将是:

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