2015-10-20 62 views
-1

我做的一个数据废料在网站上(经过他们的许可)如何阅读本格文成三个独立的变量

所以,当我这样做,我得到下面的DIV从Ajax调用

响应
<div class="tickerdata"> 
    8250.00 
    <span class="down"><img src="redarrow.jpg" alt="Down">&nbsp;6.50</span> 
    <span class="down"><img src="redarrow.jpg" alt="Down">&nbsp;0.08%</span> 
</div> 

我想所有的数字读入变量是

8250.00,6.50和0.08%,为3个不同的变量。

我曾尝试为

$(document).ready(function() { 
    var tickerdatalive = $('.tickerdata').text(); 
    var current_price = tickerdatalive[0]; 
    var change_points = tickerdatalive[1]; 
    var change_percent = tickerdatalive[2]; 
}); 

这是我的小提琴

http://jsfiddle.net/p2ww0nef/

能否请你让我知道如何读值到变量?

回答

1

请尝试使用下面的代码片段。

<div class="tickerdata"> 
     8250.00 
    <span class="down"> 
     <img src="redarrow.jpg" alt="Down" />&nbsp;6.50</span> 
     <span class="down"> 
      <img src="redarrow.jpg" alt="Down" />&nbsp;0.08%</span> 
    </div> 
    <script> 
     $(document).ready(function() { 
      var tickerdatalive = $('.tickerdata').text(); 
      var test = tickerdatalive.replace(/\s\s+/g, ' ').split(' ').filter(function (v) { return v !== '' }) 
      var current_price = test[0]; 
      var change_points = test[1]; 
      var change_percent = test[2]; 
     }); 
    </script> 

DEMO

0

使用.contents()代替.text()

$(function() { 
    var tickerdatalive = $('.tickerdata').contents(); 
    var current_price = tickerdatalive[0]; 
    var change_points = tickerdatalive[1]; 
    var change_percent = tickerdatalive[2]; 
}); 

https://api.jquery.com/contents/

获取每个元素的孩子在匹配的元素,包括文本和注释节点。

更新fidddle

0

可以修剪文字和分裂与空白。

var tickerdatalive = $('.tickerdata').text().trim().split(/\s+/g); 

tickerdatalive将文本节点的数组。

1

我会第一空白标准化再拆单空间字符串:

$(document).ready(function() { 

     var tickerdatalive = $('.tickerdata').text(); 

     var arr = tickerdatalive.replace(/\s\s+/g, ' ').split(' ') 

     var current_price = arr[0]; 
     var change_points = arr[1]; 
     var change_percent = arr[2]; 

    }); 

见你的提琴:http://jsfiddle.net/p2ww0nef/4/

你可能要为变量分配值前检查数组长度当然。

1

一种方法是分离的孩子,所以你可以阅读他们的DOM,并留在主容器的唯一的事情之外的文本将是价格

$('.tickerdata').each(function(){ 

    var $spans = $(this).children().detach(); 
    // children are gone so all that is left is text node 
    var current_price = $(this).text().trim(); 

    var change_points = $spans.first().text().trim(); 
    var change_percent =$spans.last().text().trim(); 

    console.log([current_price,change_points,change_percent]); 
}); 

文本DEMO