Javascript 在循环中替换数组中的值
如何在Jquery上组织数据数组的替换 我在外部文件中有如下数据数组: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
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]];
});