我是一名 iPhone 应用程序开发人员。我正在更改所选文本的颜色。这对我来说很好。但是当重复的单词很少时,例如
大家好。你好世界。我是 iPhone 应用程序开发人员。你好世界。堆栈溢出。你好世界。
这里重复“你好”文本。当我选择最后一个“Hello”文本时,它会给我第一个“Hello”文本索引。我试过了indexOf(),search()
,anchorOffset()
但这不起作用。
以下是我的代码。
function heighlightText(data) {
var selectedText = window.getSelection();
var textd=$("#data").html(); // this will give me whole text.
var normalText = $("#data").text();
var startPosition = normalText.search(selectedText); // this will give selected text start position.
var getPosition = selectedText.toString();
var endPosition = parseInt(getPosition.length) + parseInt(startPosition); // this will give selected text end position.
var textToReplace = "<span id='" + startPosition + "' class='highlightedText' onclick=\"myOnclikFunction('"+selectedText+"')\"> "+selectedText+"</span>";
var startPart = textd.substr(0,startPosition);
var lastPart = textd.substr(endPosition,textd.length);
var reT = startPart + textToReplace + lastPart;
$("#data").html(reT);
}
嗨HTML:
<style type = "text/css">
#data {
font-size : 20px;
color : black;
}
.highlightedText {
background-color : red;
}
</style>
<body>
<div id = "data" >Lots of text here...
<div/>
</body>
任何人都可以为此提出解决方案。提前致谢。