通过内部文本获取所有元素

时间:2013-01-21 12:38:57

标签: javascript

我遇到了问题: 我想在html文档中搜索一个字符串。到目前为止,我尝试使用window.find(..)方法,但我无法找回找到的元素的节点。例如,我可以突出显示所有匹配的文本。 但我想将所有节点放在一个数组中,我找不到一个方法,它可以返回所选文本的节点。 以下代码仅突出显示匹配的文本,我想获取它的(父)节点。

function doSearchAdam(text) {
if (window.find && window.getSelection) {
    document.designMode = "on";
    var sel = window.getSelection();
    sel.collapse(document.body, 0);
    while (window.find(text)) {
        document.execCommand("HiliteColor", false, "yellow");
        sel.collapseToEnd();
    }
    document.designMode = "off";
} else if (document.body.createTextRange) {
    var textRange = document.body.createTextRange();
    while (textRange.findText(text)) {
        textRange.execCommand("BackColor", false, "yellow");
        textRange.collapse(false);
    }
}

}

谢谢你们! 亚当

1 个答案:

答案 0 :(得分:1)

将上述评论中的代码放入代码代码中以提高可读性。

$(document).ready(function() { 
    $("#findButton").click(function() { 
        myFunction(); 
    }); 
});

function myFunction() { 
    var matchedPages = new Array(); 
    $(".Page").filter(function() {
        if ($(this).text().indexOf($("#findText").val()) >= 0) {
            //$("#findText").value() console.log($(this)); 
            matchedPages.push($(this)); 
        } 
    }); 
    console.log(matchedPages);
    console.log(matchedPages[1].attr("id")); 
}