如何选择元素中的所有文字?
<div class="wrapper">
<div class="content">Lorem ipsum dolor sit amet.</div>
</div>
&#34;包装&#34;是一个ElementRef。如何在&#39; .content&#39;中选择所有文字(如Hightlight文字)?
我尝试了以下但没有成功:
const selectedElm = selectedRef.nativeElement
(selectedElm.querySelector('.content') as HTMLInputElement).select();
(selectedElm.querySelector('.widget-content') as HTMLInputElement).setSelectionRange(0, 5)
答案 0 :(得分:1)
您无法在文档中选择(逐个字符)正常元素文本的文本。 (甚至没有使用JQuery&#39; .select()
。您需要将文本放在某种可编辑的容器中才能使用。
您可以使用 createRange()
var x = document.querySelector(".wrapper");
// Depending on which method is supported by browser
if (document.selection) {
// Create a range of text object
var range = document.body.createTextRange();
range.moveToElementText(x); // Apply range to element in question
range.select(); // Now, select will work
} else if (window.getSelection) {
var range = document.createRange();
range.selectNode(x);
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
<div class="content">Lorem ipsum dolor sit amet.</div>
</div>
&#13;