2009-05-31 1 views
1

私はJetpackを試しています。特定のhtmlページですべての年を解析し、その年をWikiページへのリンクで囲みたいと思います。 jqueryでコードを試してみましたが、動作しますが、今はJetpackで使用しています。エラー$(doc).replaceは関数ではありません。私は間違いなくJquery/Jetpackを初めて使っているので、本当に簡単に何かを見逃しているかもしれませんが、あなたの助けは大歓迎です。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); 

をし、基本的に、私はジェットパックには、この関数「ポート」に希望:奇妙なことは、この

jQueryの機能が動作することです。

これは、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); 
    }); 
    } 

}); 

答えて

3

私はジェットパックに慣れていないんだけど、あなたのjqueryのはかなり台無しにしているようです。

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

その後、$(doc).replace(regexp、...)を実行していますが、replace()はjquery関数ではありません。 .html()を実行したかったかもしれません。replace(regexp、...);しかし、これはうまくいきません。ドキュメント内の数字は、別のURLやページのHTMLの一部であっても、置き換えられます。

詳細については、この質問を参照するか、jQueryのテキストノードのためのgoogle: Find text string using jQuery?

関連する問題