如果文本中有任何格式,为什么此函数会失败? [在IE8中]

时间:2011-11-27 09:54:01

标签: javascript internet-explorer textrange

我使用以下方法在网页中搜索字符串。它匹配纯文本;但是,它在以下情况下失败:

 <span>I</span> am searching for <b>text</b>

如果我搜索“正在搜索”它将匹配..但如果我搜索“我正在搜索”它不匹配。以下是我正在使用的代码:

function search(text)
{
    if (document.body.createTextRange) 
    {
        var textRange = document.body.createTextRange();
        while (textRange.findText(text)) 
        {
            textRange.execCommand("BackColor", false, "yellow");
            textRange.collapse(false);
        }
    }
}

here is the fiddle.它在IE8中不起作用。 感谢

1 个答案:

答案 0 :(得分:1)

<script type="text/javascript">
function findText(text) {
    $('*:contains('+text+')').css('background-color', 'Yellow');
});
</script>

<script type="text/javascript">
function findText(textBoxOrHtmlTagId, text) {
    $('#'+textBoxOrHtmlTagId+':contains('+text+')').css('background-color', 'Yellow');
});
$(document).ready(function(){
    $('#yourid').live('keydown', findText('yourid', $('#yourid').text());
});
</script>

应该工作:简而言之使用jquery