每个jQuery(this)只获取最后一个值

时间:2013-01-24 06:58:03

标签: jquery wordpress scope each

我有这段代码,变量 toto 在数组的每个单元格中具有相同的值(其他线程表示范围问题,但我使用 var titi=jQuery(this).text(); titi=jQuery(this).text();

HTML

<table name='xnnjz'><tr><td>1</td><td>2</td><td>3</td></tr></table>

的JavaScript

var i=0;
jQuery("table['name=xnnjz'] tr.child-of-application"+indep+" td").each(function () {
    var titi=jQuery(this).text();
    toto[i]=titi;
    i=i+1;
});
console.log(toto);

在控制台日志中:

toto=[3,3,3]

你能帮帮我吗?

2 个答案:

答案 0 :(得分:4)

你必须在每个外侧定义数组,然后修改你的选择器,因为我看不到任何类child-of-application

<强> Live Demo

var i = 0;
var toto = [];
jQuery("table[name=xnnjz] td").each(function() {
    var titi = jQuery(this).text();
    toto[i] = titi;
    i = i + 1;
});

以上简化版

<强> Live Demo

var toto = [];
jQuery("table[name=xnnjz] td").each(function(idx, item) {    
    toto[idx] = $(item).text();  
});

您还可以使用jQuery map()

<强> Live Demo

var toto = jQuery("table[name=xnnjz] td").map(function () {
    return jQuery(this).text();    
});

答案 1 :(得分:0)

请在此处查看您的问题:

jQuery("table['name=xnnjz'] tr.child-of-application"+indep+" td").each(function
 //-----------^----------^---Either remove it or do it like this below

jQuery("table[name='xnnjz'] td").each(function