求帮忙看下,下面的代码怎么改进才能选中一段文字啊。

obliviousSing 2016-07-01 12:00:22

var paragraphs = document.getElementsByTagName("p");
for (i=0 ; i < paragraphs.length; i++) {
paragraphs[i].addEventListener("click", insertBreakAtPoint, false);
}


function insertBreakAtPoint(e) {
var range;
var textNode;
var offset;
range = document.caretRangeFromPoint(e.pageX, e.pageY);
textNode = range.startContainer;
offset = range.startOffset;
range.expand('word');
var sel = window.getSelection();
sel.addRange(range);
}

这样点击的时候,可以让两个文字选中,怎么才能选中一段文字了,再请问下,可以根据传入的pageX和pageY选中相应的文字么。。
...全文
240 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
obliviousSing 2016-07-14
  • 打赏
  • 举报
回复
引用 3 楼 qq2460857094 的回复:
JS不太懂,JQuery倒懂一点:

$("p").click(function(){
	$(this).select();
});
试了下,这样写,貌似文字也选不中啊。。
obliviousSing 2016-07-14
  • 打赏
  • 举报
回复
引用 3 楼 qq2460857094 的回复:
JS不太懂,JQuery倒懂一点:

$("p").click(function(){
	$(this).select();
});
这样是直接选中一段文字了,那自己手动怎么控制选中的文字数量呢。。
obliviousSing 2016-07-14
  • 打赏
  • 举报
回复
引用 2 楼 sohighthesky 的回复:
不是要根据鼠标的坐标吧,感觉应该是用 e.target ,比如target是span就全部选中,或者你要选择段落 $(e.target).closest('p')
用于移动端的,类似于阅读器的选择文字功能,可以自己手动控制选择多少文字,请问下,像这种功能,除了使用pageX,pageY坐标选择,还有其他办法么。
qq2460857094 2016-07-14
  • 打赏
  • 举报
回复
JS不太懂,JQuery倒懂一点:

$("p").click(function(){
	$(this).select();
});
sohighthesky 2016-07-14
  • 打赏
  • 举报
回复
不是要根据鼠标的坐标吧,感觉应该是用 e.target ,比如target是span就全部选中,或者你要选择段落 $(e.target).closest('p')
obliviousSing 2016-07-13
  • 打赏
  • 举报
回复

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧