文档选择中的索引错误,而所选文本有一个点
wrong index in document selection, while selected text is have a dot
我正在获取文本,它是用户从html页面中选择的。我正在数组中打印此文本的索引。
我有一段文字内容。获取所选文本的索引没有问题,而选择没有点的文本(.),
但是,当选择带句点(.)的文本时,索引值总是显示1。
例如,在下面的段中
I am working in HTML with jquery. I want to make a webpage to highlight some text lines (line nos 15, 22, 32) in that page at a time. This can be done by left click in mouse and drag that line, so that the text line is selected with blue background.
当我选择"在html中工作"时,这在数组中看起来不错,索引打印为'5'。
但当我选择"jquery.I want"(有点)时。索引目前不可用(26)。
这是我的代码,https://jsfiddle.net/qL659gmh/7/
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test">I am working in HTML with jquery.
I want to make a webpage to highlight some text lines (line nos 15, 22, 32) in that page at a time. This can be done by left click in mouse and drag that line, so that the text line is selected with blue background.
I am able to get the selected lines as follows using jquery,
</div>
<script type="text/javascript">
var arr = [];
$('#test').mouseup(function () {
var output='';
output += getSelectedText();
arr.push(output);
highlightSelected();
$('#result').html(output);
indx(output);
});
function getSelectedText() {
if (window.getSelection) {
return window.getSelection().toString();
} else if (document.selection) {
return document.selection.createRange().text;
}
return '';
}
function indx(text){
inputText = document.getElementById("test")
var innerHTML = inputText.innerHTML
var index = innerHTML.indexOf(text);
console.log("innerHTML---------------"+innerHTML)
console.log("text---------------"+text)
console.log("index---------------"+index)
}
您需要使用innerText
而不是innerHtml
,因为document.selection.createRange().text
返回的纯文本没有任何标记,位于句点(.)之后的换行处。更清楚的是,问题不在于句点(这是jsFiddle
相关文章:
- 是否<asp:文本框>有一个onFocusLost事件
- 是否有一个简单的 JQuery 过程来替换页面上每段内部文本的字符串
- 我在谷歌地图上有一个标记,点击后应该会显示文本内容
- 如何创建 HTML 文本框,该文本框顶部有一个水平菜单选项卡可供选择
- 我有一个 DOM 节点如何获取其中的文本
- 我有一个循环,文本框将动态生成.我想在文本框值更改时捕获它
- 文档选择中的索引错误,而所选文本有一个点
- 将文本从一个文本框复制到另一个,但有一些限制
- 按下按钮,有一个加载弹出窗口,然后更改弹出文本
- 检查所有输入文本是否为空,如果至少有一个已填充,则打开颜色框
- 为什么一个有一个文本INPUT的FORM在输入时提交,而一个有两个文本INPUTs的FORM则不提交
- 我的php表单有一个三个文本框,每个文本框都有ID和Name
- 有一个跨文本,从多个输入字段中删除逗号
- 是否有一个支持文本选择的简约的PDF.js示例
- 如何使文本域内的文本不可选择(直到输入第一个字符),并有一个5px的左边距
- 我有一个按钮,可以在点击时改变文本,但不会变回来
- 是否有一个javascript/jquery选择器用于鼠标光标选择的文本
- 我需要显示/隐藏基于文本,如果有一个图像
- JQuery日历默认日期时,已经有一个日期在文本框中
- 输入在asp:文本框点击我的按钮(其中有一个js函数绑定到它)