Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在contenteditable div边缘案例中高亮显示_Javascript_Html - Fatal编程技术网

Javascript 在contenteditable div边缘案例中高亮显示

Javascript 在contenteditable div边缘案例中高亮显示,javascript,html,Javascript,Html,我正在努力使contenteditable div文本高亮显示或不高亮显示。但我面临的是一种边缘情况,如果我将鼠标端到端地拖动到文本上,我的div也会被选中。这意味着,如果我打印范围,它会将父元素作为结束容器 <div class = "XYZ"> <span class = "highlighted">ABCD</span> </div> ABCD 当我记录range.endContainer时,它会打印XYZ 此外,我正在使用rang

我正在努力使contenteditable div文本高亮显示或不高亮显示。但我面临的是一种边缘情况,如果我将鼠标端到端地拖动到文本上,我的div也会被选中。这意味着,如果我打印范围,它会将父元素作为结束容器

<div class = "XYZ">
 <span class = "highlighted">ABCD</span>
</div> 

ABCD
当我记录range.endContainer时,它会打印XYZ

此外,我正在使用range.setStart()和range.setEnd()方法调整我的范围,这意味着我在以下情况下失败:

<div class = "XYZ">
 <span class = "unhighlighted">ABCD</span>
</div>


range.setEnd(range.endContainer, range.endContainer.textContent.length)

ABCD
range.setEnd(range.endContainer,range.endContainer.textContent.length)

我确信我在设置范围的结束部分时犯了错误,但我无法确定在哪里。。。有人能帮忙吗?

可能是因为span元素是
display:inline
尝试css:
display:block
不,我不希望span显示在block中。