अद्यतन २०१ATE:
नोड की सामग्री कॉल का चयन करने के लिए:
window.getSelection().selectAllChildren(
document.getElementById(id)
);
यह IE9 + (मानकों मोड में) सहित सभी आधुनिक ब्राउज़रों पर काम करता है।
चलने योग्य उदाहरण:
function select(id) {
window.getSelection()
.selectAllChildren(
document.getElementById("target-div")
);
}
#outer-div { padding: 1rem; background-color: #fff0f0; }
#target-div { padding: 1rem; background-color: #f0fff0; }
button { margin: 1rem; }
<div id="outer-div">
<div id="target-div">
Some content for the
<br>Target DIV
</div>
</div>
<button onclick="select(id);">Click to SELECT Contents of #target-div</button>
नीचे दिया गया मूल उत्तर अप्रचलित है क्योंकि window.getSelection().addRange(range); उसे हटा दिया गया है
मूल उत्तर:
उपरोक्त सभी उदाहरणों का उपयोग करें:
var range = document.createRange();
range.selectNode( ... );
लेकिन इसके साथ समस्या यह है कि यह स्वयं नोड का चयन करता है जिसमें DIV टैग आदि शामिल हैं।
ओपी प्रश्न के अनुसार नोड के पाठ का चयन करने के लिए आपको इसके बजाय कॉल करने की आवश्यकता है:
range.selectNodeContents( ... )
तो पूरा स्निपेट होगा:
function selectText( containerid ) {
var node = document.getElementById( containerid );
if ( document.selection ) {
var range = document.body.createTextRange();
range.moveToElementText( node );
range.select();
} else if ( window.getSelection ) {
var range = document.createRange();
range.selectNodeContents( node );
window.getSelection().removeAllRanges();
window.getSelection().addRange( range );
}
}
document.getElementById('selectable')साथ बदल सकते हैंthis। तब आप कार्यक्षमता को कई तत्वों के लिए विनीत रूप से जोड़ सकते हैं, उदाहरण के लिए एक कंटेनर में कई div:jQuery('#selectcontainer div').click(selectText);