Tengo un texto que se muestra en una celda de tabla HTML. El texto incluye algunos espacios y otros retornos de línea que no son visibles cuando miro la salida HTML en mi pantalla (al igual que en el fragmento a continuación).
Usando el método jQuery.text() , todos estos espacios y retornos de línea se copian junto con el texto.
¿Qué debo usar para capturar lo que mi navegador muestra visualmente (como se muestra en el área de texto de salida esperada )?
$(function() { let str = $('#address').text(); $('textarea.paste').val(str); }); div { display: inline-block; margin-top: 10px; } <table> <tbody> <tr> <td id="address"> Some word<br> Some more words </td> </tr> </tbody> </table> <div> <code>jQuery.text()</code> output:<br> <textarea class="paste" rows="7"></textarea> </div> <div> Expected output:<br> <textarea rows="7">Some word Some more words</textarea> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>Puedes leer la propiedad innerText :
$(function() { let str = $('#address').prop('innerText'); $('textarea.paste').val(str); }); div { display: inline-block; margin-top: 10px; } <table> <tbody> <tr> <td id="address"> Some word<br> Some more words </td> </tr> </tbody> </table> <div> <code>innerText</code> output:<br> <textarea class="paste" rows="7"></textarea> </div> <div> Expected output:<br> <textarea rows="7">Some word Some more words</textarea> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>