突出显示字符串的所有出现次数 - 未正确递增

时间:2014-04-03 14:55:30

标签: javascript uiwebview

我正在使用here功能,我的问题在于,当我在多个段落中搜索时,var = MyApp_SearchResultCount并没有连续计数一些奇怪的原因。当我在一个文本块上运行脚本时,它可以像我预期的那样工作,但是当搜索多个段落时,我会得到这样的结果:

<p>
text text [id=4]search string[/] text text text text [id=5]search string[/] text 
text text text [id=6]search string[/] text text
</p>
<p>
text text [id=3]search string[/] text text text text 
text text text text text
</p>
<p>
text text text text text text [id=1]search string[/] text 
text text text [id=2]search string[/] text text
</p>

有没有人知道为什么会发生这种情况以及如何解决这个问题?

工作jsFiddle

1 个答案:

答案 0 :(得分:1)

原因是因为它反过来反复穿过孩子......试试这个:

JSFiddle

我改变的部分在这里(从第32行开始):

    } else if (element.nodeType == 1) { // Element node
        if (element.style.display != "none" && element.nodeName.toLowerCase() != 'select') {
            $(element).contents().each( function() {
                MyApp_HighlightAllOccurencesOfStringForElement(this,keyword);
            });
        }
    }