2011-09-14 11 views
2

如何在jQuery中对数组数组进行替换?在循环中替换数组中的值

我在外部文件中的数据数组是这样的:

var prod = []; 
prod[0] = ['one', 'two', 'three']; 
prod[1] = ['four', 'five', 'six']; 
... 

在HTML文件,我想粘贴

<tr> 
    <td class="prodname">prod[4][1]</td> 
    <td class="prodnum">prod[4][2]</td> 
    <td class="mprice_el">prod[4][3]</td> 
</tr> 

,并通过必要从阵列的替代数据通话功能fill();

我尝试这样的:

function fill(){ 
    var prodname; 
    var prodnum; 
    var prodprice; 
    $('.prodname').each(function(){ 
     for (var i = 0; i < prod.length; i++) { 
      $(this).html(prodname); 
     } 
    } 
} 

但不知道如何从HTML得到ID,并将其与阵列进行比较。

+2

只是一个侧面说明:如果你是使用它作为需要被搜索引擎索引的网站(例如谷歌),它将无法阅读你的产品。我会建议你使用服务器端语言。 – jeffreydev

+2

为什么不设置HTML如''? – Shef

+1

@jeffreydev:我同意正确的做法是做服务器端,但是值得一提的是,谷歌甚至会对使用JavaScript的页面进行索引。 – Shef

回答

1

如果我理解正确,你正在寻找这样的事情(尽管你可能会想验证结果):

$('.prodname').text(function(i, t){ 
    var m = t.match(/^prod\[(\d+)\]\[(\d+)\]$/); 
    return prod[m[1]][m[2]]; 
}); 

例子:http://jsbin.com/anusoj/3

+0

另一种选择是'$('。prodname')。text(function(i,t){return eval(t);});',但它给出警告:*“eval is evil”*。 – Kobi

+0

非常感谢!炒锅不错! – skywind

+0

但它在控制台中显示错误:'未捕获的TypeError:无法读取null的属性'1'如何改进它? – skywind