如何使用Javascript更正循环

时间:2014-04-15 08:55:22

标签: javascript jquery html

这是原始代码:

var arrayList = $("td.ms-vb-title:contains('')");
            alert(arrayList.text());
            $.each(arrayList, function (i, e) {
                areaname[i] = $(e).text();
            });

输出alert(arrayList.text()); - > 1 2 3 4 5

但是,修改后的编辑后的代码无效...

var arrayList = $("td.ms-vb-title:contains('')");
            arrayList = $(arrayList).closest('tbody').find('tr ');
            $(arrayList).each(function () {
                if ($(this).find('td.ms-vb2').eq(1).text() != "") {
                    arrayList = $(this).find('td.ms-vb2').eq(1);
                }
            });
            alert(arrayList.text());
            $.each(arrayList_temp, function (i, e) {
                areaname[i] = $(e).text();
            });

输出alert(arrayList.text()); - > 2,009 (应与1 2 3 4 5并列2,004 2,005 2,006 2,007 2,009

JSFIDDLE:http://jsfiddle.net/huydq91/CRY5w/2/

1 个答案:

答案 0 :(得分:1)

使用你的选择器就像:

var arrayList = $("td.ms-vb-title:contains('')");
arrayList = arrayList.closest('tbody').find('tr');
var arrayList_temp = null;
$(arrayList).each(function () {
    if ($(this).find('td.ms-vb2').eq(1).text() != "") {
        if (arrayList_temp)
            arrayList_temp = arrayList_temp.add($(this).find('td.ms-vb2').eq(1));
        else
            arrayList_temp = $(this).find('td.ms-vb2').eq(1);
    }
});
alert(arrayList_temp.text());
$.each(arrayList_temp, function (i, e) {
    areaname[i] = $(e).text();
});

但我没有检查你的html结构,因为它乍一看很混乱。也许还有更好的方式...