window.getSelection()怎么指定在一个id下选取?
<textarea id="aa">1,2,3,4,5,6,7,8,9,0,</textarea>
<textarea id="bb">0,9,8,7,6,5,4,3,2,1,</textarea>
<p id="showConut"></p>
<script>
const showConut = document.getElementById("showConut");
const aa = (event) => {
var selection = window.getSelection().toString();
var n=(selection.split(',')).length-1;
if (n == 0){ showConut.innerText = null; }
else{ showConut.innerText = n; }
};
document.addEventListener("selectionchange", aa);
</script>
怎么只在id=aa 下选取统计结果呢?
回复
1个回答

test
2024-07-17
其实这里可以转变一个思路:在文本输入框中,去拖选文字,这时输入框是聚焦的,另一个输入框是失焦的,可以利用 document.activeElement
获取当前聚焦输入框元素,非 id=bb
元素不往下执行。具体实现可以这样
const $bb = document.querySelector('#bb')
const aa = (event) => {
if (document.activeElement !== $bb) return
var selection = window.getSelection().toString()
var n = selection.split(',').length - 1
if (n == 0) {
showConut.innerText = null
} else {
showConut.innerText = n
}
}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容