2012-01-03 3 views
3

jQuery로 텍스트의 일부분을 선택하고 처리하려면 어떻게해야합니까? 예를 들어, 내가 마우스로 몇 마디 (안 전체 사업부)를 선택jQuery로 텍스트를 선택하는 방법

<div id="test">This is an example text here</div> 

같은 텍스트를 가지고 있고,

<div id="target"></div> 

답변

2

다음은 방법을 설명합니다. 다음은 IE 6을 포함한 모든 주요 브라우저에서 작동합니다.

function getSelectedText() { 
    var selectedText = "", sel; 
    if (window.getSelection) { 
     selectedText = "" + window.getSelection(); 
    } else if ((sel = document.selection) && sel.type == "Text") { 
     selectedText = sel.createRange().text; 
    } 
    return selectedText; 
} 

$('#target').text(getSelectedText()); 
2

당신이 사용할 수있는 이러한 단어를 (#test의 일부를) 보여주고 싶은 text method과 같이 :

(function(namespace) { 
    namespace.getSelected = function() { 
    var t = ''; 
    if (window.getSelection) { 
     t = window.getSelection(); 
    } else if (document.getSelection) { 
     t = document.getSelection(); 
    } else if (document.selection) { 
     t = document.selection.createRange().text; 
    } 
    return t; 
    }; 
}(Namespace || {})) 

$(function() { 
    $('#test').on("mouseup", function() { 
    var selectedText = Namespace.getSelected(); 
    if (selectedText) { 
     $('#target').text(selectedText); 
    } 
    }); 
}); 
+0

사용자가 선택한 텍스트는 계정에서 어떻게 확인됩니까? –

+0

현재 선택한 텍스트를 어떻게 가져 옵니까? – aProgrammer

+1

@nikc 질문이 잘못 해석되었으므로 답변이 업데이트되었습니다. –

4

텍스트를 선택하는 것을 의미하는 경우 요소에 표시하십시오. 다른 요소로 요소의 텍스트를 보여주는

var selectedText; 

if(window.getSelection) 
{ 
    selectedText = window.getSelection(); 
} 
else if(document.getSelection) 
{ 
    selectedText = document.getSelection(); 
} 
else if(document.selection) 
{ 
    selectedText = document.selection.createRange(); 
} 

$('#target').text(selectedText.toString()); 

또는 일반적으로

는, 당신은 사용

$('#target').text($('#test').text()); 
+0

그 IE에서 작동하지 않습니다 <9. 내 대답보기. –

1
$.fn.selectRange = function(start, end) { 
    return this.each(function() { 
     if(this.setSelectionRange) { 
      this.focus(); 
      this.setSelectionRange(start, end); 
     } else if(this.createTextRange) { 
      var range = this.createTextRange(); 
      range.collapse(true); 
      range.moveEnd('character', end); 
      range.moveStart('character', start); 
      range.select(); 
     } 
    }); 
}; 

참조 : http://programanddesign.com/js/jquery-select-text-range/

+0

텍스트 입력 및 텍스트 영역에만 적용됩니다. 질문은 일반적인 HTML 콘텐츠의 선택에 관한 것입니다. 또한, 나는 OP가 그것을 설정하기보다는 선택한 텍스트를 얻고 싶어한다고 생각합니다. –

1

당신은 http://www.examplet.buss.hk/jquery/caret.php 플러그인을 사용해야하고 쉽게 할 수 선택된 텍스트를 얻으십시오

// 시작 위치를 int로 지정하십시오. .. ("#의 BOX1") = "BOX1" $ ID로 캐럿()을 상자에 넣어 시작

// ("#의 BOX1"). 캐럿() 최종 POS에게 $를 가져옵니다. 결국

// 선택한 텍스트 얻기 $ ("# box1"). 캐럿(). 텍스트

+0

텍스트 입력 및 텍스트 영역에만 적용됩니다. 질문은 일반적인 HTML 콘텐츠의 선택에 관한 것입니다. –

관련 문제