0

脚本:

var degress = GiveDegrees();

$(function () {
    //alert(GiveDegrees());  //output: 89,91,87,90,91
});

function GiveDegrees() {
    var divs = $('p.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);
}

我有这个 :

$("p.wx-temp").each(degress, function (index) {
    $(this).append(degress[index], "<sup>°C</sup>");

    alert("I works");
});

但它不起作用。当我这样写时:

$("p.wx-temp").each(function (index) {
    $(this).append("<sup>°C</sup>");

    alert("I works");
});

有用。.each()函数没有重载方法.each(data, function (index))吗?

度数数组是包含五个 int as 的整数数组89,91,87,90,91。如何使用.each函数将数组值添加到每个p元素。

谢谢。

4

2 回答 2

3

为什么你需要带入degress所有each?它已经可用,使用闭包:

$("p.wx-temp").each(function(index) {
    $(this).append(degrees[index], "<sup>°C</sup>");
    alert("I works");
});

或者

var $elems = $("p.wx-temp");
$.each(degrees, function(i, val) {
    $elems.eq(i).append(val, '<sup>°C</sup>');
});

如果元素长度与数组长度匹配,那么循环的那个应该没有区别,但第一个可能更快(尽管使用本机数组循环会最快)。

请注意,您在两个部分中的拼写degrees和不同。degress

于 2012-09-06T08:30:37.203 回答
2
var degrees = [89,91,87,90,91];
$("p.wx-temp").each( function (index) {
    $(this).append(degrees[index], "<sup>°C</sup>");

    alert("I work");
});
于 2012-09-06T08:34:50.150 回答