2013-07-02 5 views
0

대문자와 소문자를 무작위로 교체하는 문자열을 원합니다.jQuery의 대문자 예

이렇게하려면 "post__title"클래스의 내용을 문자열로 가져온 다음 해당 문자열을 문자 배열로 분해하십시오. 그런 다음 해당 배열을 반복하고 각 문자에 0 또는 1을 임의로 할당하십시오. 값이 1이면 문자를 대문자로 변환하고, 값이 0이면 문자를 소문자로 변환해야합니다. 그런 다음 이전 내용을 대체하는 "post__title"에 다시 적용해야합니다.

나는 경험이 거의 없지만 지금까지 콘솔 오류 "Uncaught TypeError : 정의되지 않은 속성 'value'을 읽을 수 없습니다. 나는 그것이 작동하도록하는 방법을 알아낼 수 없습니다.

$(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

당신이'this.value'을 필요가없는, 단지 '제목을 사용 [I] .toUpperCase();'와 함께 무엇' – stackErr

+0

(1 - 0 + 1)'? 왜 '2'가 아닌가? – Archer

+0

클라스 누구와 통화하고 있습니까? '@ someone '을 사용하여 사용자가 대답했다는 것을 알리십시오 – stackErr

답변

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); 
}); 
+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]으로 전화하면됩니다.