0

我想要一个字符串来随机交替大写和小写字母。

为此,我将“post__title”类的内容抓取到一个字符串中,将该字符串分解为一个字母数组。然后循环该数组并为每个字母随机分配 0 或 1。如果值为 1,则字母应转换为大写,如果值为 0,则字母应转换为小写。然后必须将其重新应用于替换旧内容的“post__title”。

我很缺乏经验,但到目前为止我有以下内容,这导致控制台错误“未捕获的类型错误:无法读取未定义的属性'值'”。我似乎无法弄清楚如何让它工作。

$(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);
});
4

2 回答 2

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]

于 2013-07-02T14:12:29.290 回答
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);
});
于 2013-07-02T14:20:10.887 回答