¿Cómo seleccionar todo el texto en contenteditable div?

Antes de marcar como duplicado, quiero que se den cuenta de que nadie ha proporcionado una buena respuesta para esta pregunta específica. Al seleccionar todo el texto en div satisfactorio cuando se enfoca / hace clic , la respuesta aceptada y la respuesta de Tim Down no son útiles, ya que solo funcionan cuando el elemento ya está enfocado. En mi caso, quiero que todo el texto en el div satisfactorio se seleccione después del clic de un botón, incluso si el div no se enfocó de antemano.

¿Cómo podría hacer esto?

Usé un código de este hilo para encontrar mi respuesta. Es 100% jQuery como lo pediste también. Espero que te guste 🙂

jQuery.fn.selectText = function(){ var doc = document; var element = this[0]; console.log(this, element); if (doc.body.createTextRange) { var range = document.body.createTextRange(); range.moveToElementText(element); range.select(); } else if (window.getSelection) { var selection = window.getSelection(); var range = document.createRange(); range.selectNodeContents(element); selection.removeAllRanges(); selection.addRange(range); } }; $("button").click(function() { $("#editable").selectText(); });​ 

enlace jsfiddle .

Por ejemplo, en el siguiente escenario, si el usuario establece el foco en div editable (con mouse, teclado o haciendo clic en un botón), se selecciona el contenido de div editable.

 
12 some text...

Gran función.

Lo he adaptado para permitir la selección completa de texto a través de cualquier número de divs editables a través de una clase, ya sea que se haga clic directamente, o se pestañee a:

 $.fn.selectText = function(){ var doc = document; var element = this[0]; //console.log(this, element); if (doc.body.createTextRange) { var range = document.body.createTextRange(); range.moveToElementText(element); range.select(); } else if (window.getSelection) { var selection = window.getSelection(); var range = document.createRange(); range.selectNodeContents(element); selection.removeAllRanges(); selection.addRange(range); } }; $(".editable").on("focus", function () { $(this).selectText(); }); $(".editable").on("click", function () { $(this).selectText(); }); $('.editable').mouseup(function(e){ e.stopPropagation(); e.preventDefault(); // maximize browser compatability e.returnValue = false; e.cancelBubble = true; return false; }); 

HTML:

 
01 text...
02 text...
03 text...

VIOLÍN:

http://jsfiddle.net/tw9jwjbv/

 
12 some text...

A juzgar por esta respuesta proporcionada en el enlace, no puede usar el código al hacer clic dentro de su botón.

Lo que estoy diciendo es incluso decir en el div onfocus="document.execCommand('selectAll',false,null)"

Luego use jQuery para activar el foco $('#test').focus();