【发布时间】:2012-07-21 03:54:20
【问题描述】:
如果我这样做:
$('.classname').html(Math.floor(Math.random()*10)+1);
所有“类名”都用相同的数字填充。 是否可以用不同的随机数填充“类名”的每个实例?
我能想到解决这个问题的唯一可能方法是遍历“类名”的每个实例并一个一个地应用一个随机数。
【问题讨论】:
标签: javascript jquery random
如果我这样做:
$('.classname').html(Math.floor(Math.random()*10)+1);
所有“类名”都用相同的数字填充。 是否可以用不同的随机数填充“类名”的每个实例?
我能想到解决这个问题的唯一可能方法是遍历“类名”的每个实例并一个一个地应用一个随机数。
【问题讨论】:
标签: javascript jquery random
html 方法有一个接受函数的“重载”。该函数应返回将内部 html 设置为的值。在你的情况下,你可以这样做:
$(".classname").html(function() {
return (Math.floor(Math.random()*10)+1);
});
该函数实际上是用两个参数调用的。第一个是选择中元素的索引,第二个是元素内部html的当前值
【讨论】:
您可以使用 jQuery 的 .each() 函数来遍历与您提供的选择器匹配的每个元素 -
$.each('.classname',function(index,elem){
var newRandomNumber = (Math.random()*10)+1;
$(elem).html(Math.floor(newRandomNumber));
});
对于each() 函数的每次迭代,您将在elem 参数中获得您所在元素的index 和元素本身。
【讨论】:
this代替$(elem)
each function 定义了索引和值参数,所以我喜欢使用提供的内容:)
试试这个
$('.classname').each(function(index) {
$(this).html(Math.floor(Math.random()*10)+1);
});
【讨论】:
是的。最简单的方法是使用 jQuery each 函数:
$('.classname').each(function() {
$(this).html(Math.floor(Math.random()*10)+1);
});
【讨论】: