Jquery更改元素值?

时间:2012-09-06 07:02:38

标签: jquery

我有5个div。

<div class="wx-temp">89 <sup>°F</sup></div>
<div class="wx-temp">91 <sup>°F</sup></div>
<div class="wx-temp">87 <sup>°F</sup></div>
<div class="wx-temp">90 <sup>°F</sup></div>
<div class="wx-temp">89 <sup>°F</sup></div>

我这样得到他们。

var degress = $("div.wx-temp").text();

我想在sup元素之后附加celcius值。

当我在.each函数中得到degress时,它会像这样解析文本:

{8,9,°,F,9,1,°,F.........} 

我想只得到这样的整数:

{89,91,87,90,89}

我该怎么做?感谢。

3 个答案:

答案 0 :(得分:4)

如果你正在迭代.text,那就是你将得到的 - 对字符串中每个字符的迭代。您想迭代整个元素列表:

$("div.wx-temp").each(function() {
    var degFahrenheit = parseInt($(this).text(), 10);
    var degCelcius = customConversionHere(degFahrenheit);
    // append degCelcius to $(this)
});

严格地说,上面的$(this).text()会产生"89 °F",而不是"89",但parseInt会照顾到这一点。

答案 1 :(得分:2)

var degress = $("div.wx-temp").text();
var substr = degrees.split(' °F');

给出

substr[0] = '89';
substr[1] = '91';    

答案 2 :(得分:1)

$(function(){

    alert(GiveDegrees());

});

function GiveDegrees()
{
    var divs = $('div.wx-temp');
    var degrees = new Array();

    $.each(divs,function(i,j){

        degrees.push( stringToNum( $(this).text()));

    });

    return degrees;
}

function stringToNum(str){
  return str.match(/\d+/g);

}

小提琴链接:http://jsfiddle.net/LyG6q/5/