javascript - 使用jquery突出显示特定位置的文本

标签 javascript jquery

我想突出显示特定位置的文本。像这样:highlight with jquery , 但它只突出显示位置 n 中的单词。

例如,仅突出显示文本“你好,你好,你好”中的第二个

谢谢

最佳答案

这是一种方法,但它不是一些简洁而聪明的 jQuery - 主要是直接的 javascript。

<div id="content">hello, hello, hello</div>

<script type="text/javascript">
    $(document).ready(function() {
        var searchKey = "hello"; // text to search for in element
        var elementToSearch = $("#content");  // jquery element with text to search for matches
        var instanceToHighlight = 2; // 1-based;  e.g. 3 = third instance found
        highlightText(searchKey, elementToSearch, instanceToHighlight);
    });

    function highlightText(searchKey, elementToSearch, instanceToHighlight) {
        var content = elementToSearch.html();
        var highlightIndex = instanceToHighlight - 1;
        var lastIndex = -1;
        var i = 0;
        // get the index in the overall text of the instance to highlight
        while (i <= highlightIndex) {
            lastIndex = content.indexOf(searchKey, lastIndex + 1);
            i++;
        }
        var testValue = content.slice(lastIndex, lastIndex + searchKey.length);
        if (testValue !== searchKey) {
            return;  // didn't find an actual match
        }
        // chop up the content string so that the <span> tag can be wedged in around the text to highlight
        var contentBeforeHighlightText = content.substr(0, lastIndex);
        var contentAfterHighlightText = content.substr(lastIndex + searchKey.length, content.length - 1);
        highlightedText = "<span class=\"highlight\">" + searchKey + "</span>";
        content = contentBeforeHighlightText + highlightedText + contentAfterHighlightText;
        elementToSearch.html(content);
    }
</script>

关于javascript - 使用jquery突出显示特定位置的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3420970/

相关文章:

javascript - 将对象转换为数组进行存储并返回数组以在 JavaScript 中应用

javascript - Wicket 6.2 AbstractDefaultAjaxBehavior getCallbackUrl 不再解析 JS 变量

jquery - 引用 tr 元素

jquery - jQuery .blur() 和 .focus() 事件的问题

jquery - Javascript jQuery 将大段代码插入 DOM 的最佳方式

javascript - 我正在寻找一种在 Vuetify 中保持底部导航图标颜色的方法

javascript - 使用 JQuery 单击 "download"链接不下载文件

javascript - 复制变量javascript

javascript - 在 php 中插入一个 jQuery 值

javascript - jQuery:只包装第一个和第二个 child ,而不是其余的 child