2013-08-04 2 views
1

안녕하세요 저는 자바 스크립트로 부분 문자열을 사용하려고합니다. 여기 내 코드는 다음과 같습니다.자바 스크립트에서 부분 문자열을 바꿈

하위 문자열 기능이 작동하지만 스타일을 추가하면 오류 콘솔에서 "정의되지 않은"오류가 발생합니다. 이 하위 문자열을 자바 스크립트로 어떻게 스타일링 할 수 있습니까?

+3

'span'으로 감싸고 클래스를 추가하고 스타일을 지정하십시오. – elclanrs

+0

요소에만 style 속성이 있으며 문자열은 그렇지 않습니다. – adeneo

+0

스팬에 스타일을 추가 했으므로 (자바 스크립트를 사용하여 스타일을 지정 했음) 하위 문자열을 출력하지 않습니다. – user1058860

답변

5

두 가지 옵션 :

  1. innerHTML 솔루션입니다. 경고 :이 작업을 수행하는 요소 내의 모든 요소에 대한 이벤트 처리기가 제거됩니다. 나는 주로 내가 그것을 지적 할 수 여기 언급 : splitText를 사용

    var elm = document.getElementById("test1"); 
    var html = elm.innerHTML; 
    elm.innerHTML = '<span style="font-style: italic">' + html.substring(0, 2) + '</span>' + html.substring(2); 
    
  2. . 여기에서는 범위 내에서 줄 바꿈 할 텍스트가 요소 내에 첫 번째 텍스트 노드라고 가정합니다. 요소에이 은하지 않습니다 엉망 이벤트 핸들러 :

    var elm = document.getElementById("test1"); 
    var node = elm.firstChild; 
    var span = document.createElement('span'); 
    node.splitText(2); 
    span.style.fontStyle = "italic"; 
    elm.insertBefore(span, node); 
    span.appendChild(node); 
    

    splitText 분리 점은 사용자가 지정한 오프셋 (offset) 인 상태 일이있을 사용되는 두 개의 인접한 텍스트 노드를 작성합니다. 그런 다음 첫 번째 것을 가져다가 span으로 묶습니다.

    Live Example | Live Source

관련 문제