1

問題が発生しています。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);
    }
}

}

みんなありがとう!アダム

4

1 に答える 1

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")); 
}
于 2013-04-01T16:56:07.600 に答える