2011-09-27 18 views
1
$(document).ready(function() { 
      $("#btnhighlight").click(function() { 
       alert("yes"); 
       var htext = $("#txthighlighttext").val(); 
       $("#lstCodelist option").each(function() { 
        var sp = $(this).text(); 
        var sp1 = sp.split(' '); 
        $.each(sp1, function (i, l) { 
         if (l == htext) { 
          l.css('color', 'yellow'); 
         } 
        }); 
       }); 
      }); 
     }); 

var x = "hello world"; l에서 텍스트 색상을 변경해야합니다. that suppore입니다. "hello"문자열에서 텍스트를 가져 왔습니다. CSS는 ( 나는 l.('color', 'yellow');을 할 수 있습니까 자바 스크립트 오류가 발생하고있다.jquery를 사용하여 텍스트 색상 변경

나는 일이이 $(this).css('color', 'yellow'); 아무것도 같이 할 경우.

감사

당신이 반복되는 요소가에
+2

'sp1'은 문자열이고 DOM 개체는 아닙니다. '.text()'는 문자열을 반환하므로 DOM 객체가 아닌 문자열 배열을 반복 처리합니다. – Alex

답변

1

시도 :

$(l).css('color', 'yellow');

편집 :

좋아요 ... 당신은 문자열와 협력하지 않는 실제 DOM 요소. 내 제안은 <span>과 같은 요소에 동적으로 l을 배치하고 CSS를 적용한 다음 DOM의 원본 텍스트를 바꾼다는 것입니다.

http://www.randomsnippets.com/2008/03/07/how-to-find-and-replace-text-dynamically-via-javascript/

나는이 완벽한 솔루션입니다 말하는 게 아니에요하지만 그것은 옳은 길 아래로 당신을 이끌 것입니다 : 나는 실제로 다시 동안 이것을 비슷한했다.

+0

이것은 텍스트 색상을 전혀 변경하지 않습니다. 감사합니다. – user957178

+0

'if' 문장이'true'를 테스트하고 있습니까? 다음의'alert' 문을'if' 문 안에 넣고 실행 중인지 확인하십시오 :'alert ("htext :"+ htext + "l :"+ l);' –

+0

예 나는 완벽하게 가치를 얻고있다. 감사합니다 – user957178

0

l$ 내부를 포장 당신은

시도 갈 수 있습니다

$.each(sp1, function (i, l) { 
if (l == htext) { 
    $(l).css('color', 'yellow'); 
} 
+0

이것은 나를 위해 작동하지 않습니다. 그것의 텍스트 색상을 변경하지 않습니다. – user957178

+0

아마도'l'은 주석에 언급 된 @Alex와 같은 DOM 요소가 아니기 때문일 것입니다. – Rafay

0

이 작품과 비슷합니까? 이 l 방금 ​​다음 각 루프의 내부를 "밀어"필요 의미 DOM 요소 아닌 언급 한 바와 같이

 $('<span>', { 
      'style': 'color:yellow', 
      html: l 
     }).appendTo('#divName'); 
+0

여기서 divName입니다. Zach .. thanks – user957178

+0

이 예제는 다른 요소에 추가 된 텍스트로 새로운 범위를 만듭니다. 나는 이것이 당신이하려고하는 것에 대해 실제로 작동하지 않을 수도 있고, 더 이상 작업 할 시간이 없다고 생각합니다. 그러나 당신은 아마도 당신이 원하는 색상의 텍스트를 위해 생성 된 새로운 DOM 요소가 필요합니다. ... 아마도 옵션의 내용을 제거하고 각 단어의 새로운 범위로 바꿀 수 있습니까? 그리고 만약 당신이 찾고있는 텍스트, 내 예제에서처럼 스타일을 설정하십시오 –

0

(안된).

$("#lstCodelist option").each(function() { 
    var sp = this; //or $(this) and then you do sp.css('color', 'yellow'); 
    var sp1 = $(this).split(' '); 

    $.each(sp1, function (i, l) { 
     if (l == htext) { 
      $(sp).css('color', 'yellow'); 
     } 
    }); 
}); 
+0

이것은 var sp1 = $ (this) .split ('');에서 말하는 객체 오류를 반영하지 않습니다. – user957178

관련 문제