2011-02-23 3 views
1

저는 jQuery에 대해 더 많이 배우기는했지만 여기 붙어 있습니다.jQuery 멍청한 놈 : (이것). 내가 잘못하고 있는거야?

체크 상자가 눌려 졌을 때 div의 색상을 변경하는 코드가 있는데 제대로 작동합니다.

내가 초점 텍스트 영역의 내용을 변경할 수 있도록하려면이 후,이 시도 :

//textarea 
    $("textarea").focus(function(){ 
     if ($(this).contains('Skriv valg av headset her')){ 
     $(this).replaceWith(''); 
    }); 

을하지만 아무런 효과가 없다. 구문 오류가 있습니까? 아니면 잘못된 접근 방법을 취하고 있습니까?

jsFiddle example here.

+0

js 예를 들어 어디에서 ?? :-) – Rafay

+0

HTML5 입력 및 텍스트 영역에는'placeholder' 속성이 있습니다. 오래된 브라우저에서이 텍스트를 포기할 준비가되면 문제가 해결됩니다. – zneak

+0

@ 3nigma 성명서는 링크입니다. http://jsfiddle.net/Kyle_Sevenoaks/HLBGA/1/ – zneak

답변

6

$.contains 기능과 :contains 선택,하지만 jQuery.fn.contains있다. 당신은 여기 val 찾고 저는 믿습니다 :

$('textarea').focus(function(){ 
    var t = $(this); 

    if(t.val().indexOf('Skriv valg av headset her') !== -1) { 
     t.val(''); 
    } 
}); 

replaceWith 여기 또한 잘못이다 - 일을했다 경우 (그리고 그것이 내가 생각하지 말아야은 DOM 요소 또는 HTML 텍스트 중 하나를 필요하기 때문에) textarea 요소를 제거합니다 (어쨌든 remove을 사용하는 것이 더 좋습니다)

+0

위대한, 고마워. :) 나는 그것이 틀린 길로 정말로 가고 있었다고 생각한다. 잘 모르겠지만 어떻게 작동하는지 이해해야합니다. D – Kyle

+0

+1 'replacewith'(.contains 구문이 올바른 경우) 텍스트 상자를 깔끔하게 지워 버리고 html의 빈 문자열로 바꿉니다. – guildsbounty

0

이 시도 :

//textarea 
$("textarea").focus(function(){ 
    var $this = $(this); // Always cache your selector 

    if ($this.contains('Skriv valg av headset her')) 
    { 
     $this.val(''); 
    } 
}); 
+0

불행히도 작동하지 않았고 더하기 쪽이 최소한 jslint가 코드를 지금 유효하게합니다. – Kyle

+0

게시 된 첫 번째 예제를 확실히 확인하십시오. 그들은 작동해야하는 indexOf를 사용하고 있습니다. – Seth

관련 문제