我的任务是获取段落中的所有单词,并使每个单词每秒切换一次为随机颜色。
我写了这篇文章,以为exited with 126: , message: "rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused \"process_linux.go:83: executing setns process caused \\\"exit status 15\\\"\"\n\r\n"
会找到所有span元素并对所有元素一次执行相同的操作,这会使所有单词切换为SAME随机颜色。
但是,此代码将每个单词切换为不同随机颜色,就像在每个$('span')
上运行makeHexColor
的不同实例一样。正如我所想的那样,我非常困惑,发生的事情是在span
,setInterval
内部首先求值为随机字符串,然后将一个特定的字符串附加到所有范围的color属性上
makeHexColor
$(document).ready(function() {
var words = $('p').text().split(' ');
$('p').empty();
words.forEach(function(word) {
$('p').append($('<span>').text(word + ' '));
});
setInterval(function() {
$('span').css('color', makeHexColor);
}, 1000);
})
var makeHexColor = function() {
var hex = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];
var color = '#';
for (var i = 0; i < 6; i++) {
var random = Math.floor(Math.random() * 16);
color += hex[random];
}
return color;
}
答案 0 :(得分:2)
$('span').css
...实际上是由jQuery编译为循环的,并且每次迭代都在调用makeHexColor
函数。
如果您希望所有颜色相同的单词将您的setInterval
更新为:
setInterval(function() {
var color = makeHexColor();
$('span').css('color', color)
},1000)
答案 1 :(得分:0)