jQuery中的备用标题案例

时间:2013-07-02 14:09:03

标签: jquery uppercase lowercase

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

为此,我将类“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);
});

2 个答案:

答案 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);
});