我正在试验Jetpack,我想解析给定html页面中的所有年份,然后用指向Wiki页面的链接包装年份。我尝试了jquery中的代码,它在那里工作,但现在我在Jetpack中使用它,它给出一个错误$(文档).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上。
这是我的JQuery函数到Jetpack的‘旧’非工作端口:
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);
});
}
});发布于 2009-05-31 20:16:45
我不熟悉jetpack,但您的jquery似乎相当混乱。
如果"doc“是一个超文本标记语言文档,那么执行$(doc).each()实际上没有任何意义。它将只循环一次,"this“将与doc相同。
然后执行$(doc).replace(regexp,...),但replace()不是jquery函数。您可能想要执行.html().replace(regexp,...);但是,我不建议这样做,因为它不会起作用-您最终将替换文档中的任何数字,即使它们是另一个URL或页面的HTML的一部分。
有关更多信息,请参考这个问题或谷歌的jquery文本节点:Find text string using jQuery?
https://stackoverflow.com/questions/932518
复制相似问题