我想要一个字符串随机替换大写和小写字母。
为此,我将类“post__title”的内容抓取到一个字符串中,将该字符串分解为一个字母数组。然后循环该数组并随机为每个字母分配0或1。如果值为1,则字母应转换为大写,如果值为0,则字母应转换为小写。然后必须重新应用“post__title”替换旧内容。
我很缺乏经验,但到目前为止,我有以下内容,导致控制台错误“Uncaught TypeError:无法读取未定义的属性'值'”。我似乎无法弄清楚如何让它发挥作用。
$(window).load(function() {
var z;
var title = $('.post__title').text().split("");
for (i = 0; i < title.length; ++i) {
z = Math.floor(Math.random() * (1 - 0 + 1)) + 0;
if (z==1) {
title[i].this.value.toUpperCase();
}
else {
title[i].this.value.toLowerCase();
}
};
$.map(title, function(val,index) {
var str = index + ":" + val;
return str;
}).join(", ");
$(".post__title").text(str);
});
答案 0 :(得分:0)
$(window).load(function() {
var z;
var title = $('.post__title').text().split("");
for (i = 0; i < title.length; ++i) {
z = Math.floor(Math.random() * (1 - 0 + 1)) + 0;
if (z==1) {
title[i].toUpperCase();
}
else {
title[i].toLowerCase();
}
$.map(title, function(val,index) {
var str = index + ":" + val;
return str;
}).join(", ");
$(".post__title").text(str);
});
您使用的是title[i].this.value.toUpperCase();
。这是不正确的,因为title[i]
已经有了对该字母的引用。只需在toUpperCase()
上致电toLowerCase()
或title[i]
。
答案 1 :(得分:0)
此功能可以使用:
$(window).load(function() {
var z;
var title = $('.post__title').text();
var str = "";
for (i = 0; i < title.length; ++i) {
z = Math.floor(Math.random() * (1 - 0 + 1)) + 0;
if (z==1)
str += title[i].toUpperCase(); //put value in str, no need for .this.value
else
str += title[i].toLowerCase();
};
$(".post__title").html(str);
});