我正在网站上进行数据报废(经过他们的许可)
所以当我这样做时,我得到以下div作为来自ajax调用的响应
<div class="tickerdata">
8250.00
<span class="down"><img src="redarrow.jpg" alt="Down"> 6.50</span>
<span class="down"><img src="redarrow.jpg" alt="Down"> 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];
});
这是我的小提琴
请告诉我如何将值读入变量?
答案 0 :(得分: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 :(得分:1)
尝试使用以下代码段。
<div class="tickerdata">
8250.00
<span class="down">
<img src="redarrow.jpg" alt="Down" /> 6.50</span>
<span class="down">
<img src="redarrow.jpg" alt="Down" /> 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>
答案 2 :(得分: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 强>
答案 3 :(得分: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
答案 4 :(得分:0)
你可以修剪文本并用空格分割。
var tickerdatalive = $('.tickerdata').text().trim().split(/\s+/g);
tickerdatalive将是文本节点数组。