1

私はJetpackを試していますが、特定のhtmlページですべての年を解析してから、Wikiページへのリンクで年をラップしたいと思います。jqueryでコードを試しましたが、動作しますが、Jetpackで使用しているため、エラーが発生します$(doc).replaceは関数ではありません。私は間違いなくJquery/Jetpackに慣れていないので、本当に簡単なものが欠けているかもしれませんが、あなたの助けは大歓迎です。

編集:私は提案を試しましたが、まだ立ち往生しています。奇妙なことはこれが

JQuery関数は機能します:

(function($) {
    $.fn.clickUrl = function() {  
            var regexp = /([1-2][0-9][0-9][0-9])/gi;
            this.each(function() {
            $(this).html(
                  $(this).html().replace(regexp,'<ahref=\"http://nl.wikipedia.org/wiki/$1\">$1<\/a>')
            );
        });
    return $(this);
    }
})(jQuery);

基本的に、この関数をJetpackに「移植」したいと思います。

これは、Jetpackへの私のJQuery関数の「古い」機能しないポートです。

jetpack.statusBar.append({  
    html: "Hyperlink Years",  
    width: 80,  
    onReady: function(widget){  
        $(widget).click(function(){  
        var regexp = /([1-2][0-9][0-9][0-9])/gi;
        var doc = jetpack.tabs.focused.contentDocument;
            $(doc).each(function() {
            $(this).html(
                    $(doc).replace(regexp,'<a href=\"http://nl.wikipedia.org/wiki/$1\">$1<\/a>'));
            });
       return $(doc); 
     });  
   }  

});
4

1 に答える 1

3

私はジェットパックに慣れていませんが、あなたのjqueryはかなり混乱しているようです.

"doc" が HTML ドキュメントの場合、 $(doc).each() を実行しても意味がありません。ループは 1 回だけで、"this" は doc と同じです。

その後、$(doc).replace(regexp, ...) を実行していますが、replace() は jquery 関数ではありません。.html().replace(regexp, ...); をやりたいと思ったかもしれません。ただし、これは機能しないため、お勧めしません。別の URL またはページの HTML の一部であっても、ドキュメント内の数字を置き換えるだけです。

詳細については、この質問を参照するか、jquery テキスト ノードについては Google を参照してください: jQuery を使用してテキスト文字列を検索しますか?

于 2009-05-31T20:16:45.373 に答える