Javascript 在循环中替换数组中的值

Javascript 在循环中替换数组中的值,javascript,jquery,arrays,Javascript,Jquery,Arrays,如何在Jquery上组织数据数组的替换 我在外部文件中有如下数据数组: var prod = []; prod[0] = ['one', 'two', 'three']; prod[1] = ['four', 'five', 'six']; ... function fill(){ var prodname; var prodnum; var prodprice; $('.prodname').each(function(){ for (va

如何在Jquery上组织数据数组的替换

我在外部文件中有如下数据数组:

var prod = [];
prod[0] = ['one', 'two', 'three'];
prod[1] = ['four', 'five', 'six'];
...
  function fill(){
    var prodname;
    var prodnum;
    var prodprice;
    $('.prodname').each(function(){
        for (var i = 0; i < prod.length; i++) {
            $(this).html(prodname);
        }
    }
}
在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>

但不知道如何从html中获取id并将其与数组进行比较。

如果我理解正确,您正在寻找类似的内容(尽管您可能希望验证结果):


示例:

只是一个旁注:如果你将其用于需要搜索引擎索引的网站(例如谷歌),它将无法阅读你的产品。我建议你改用服务器端语言。为什么不将HTML设置为
?@jeffreydev:我同意正确的做法是在服务器端进行,但出于价值考虑,谷歌甚至会索引使用JavaScript的页面。使用json格式存储data@Shef即使它对页面进行索引,它不会索引javascript生成的内容。另一个选项是
$('.prodname').text(函数(i,t){return eval(t);})
,但它给出了一个警告:“eval是邪恶的”。但它在控制台中显示错误:
uncaughttypeerror:无法读取null的属性“1”
如何改进它?@Vladimir-这可能是因为您的数组中没有数字(例如,
prod[10000][1]
可能会导致错误)。您应该根据
prod.length
prod[i].length
检查索引。正如我所说的,代码缺少错误处理…我没有发现数组中第一个元素(1)的id有什么问题。当这个函数准备好时-在任何函数不工作之后。发现问题-prod[x][x]之前的间距
$('.prodname').text(function(i, t){
    var m = t.match(/^prod\[(\d+)\]\[(\d+)\]$/);
    return prod[m[1]][m[2]];
});