Javascript $(this.attr(“href”)不工作

Javascript $(this.attr(“href”)不工作,javascript,jquery,html,Javascript,Jquery,Html,出于某种原因,这行代码返回了未定义的$(this.attr(“href”) 如何获得该值?尝试: $("a").attr("href", function (index, oldHref) { return "javascript:page('" + oldHref + "')"); }); 查看文档以获取有关获取函数引用的重载的信息 虽然是“尖点”,但应该考虑编写事件处理程序,而不是在标记内使用 JavaScript:。 如果您想这样做(更新页上的链接的所有HREF属性),您可以做

出于某种原因,这行代码返回了未定义的
$(this.attr(“href”)

如何获得该值?

尝试:

$("a").attr("href", function (index, oldHref) {
    return "javascript:page('" + oldHref + "')");
});
查看文档以获取有关获取函数引用的重载的信息

虽然是“尖点”,但应该考虑编写事件处理程序,而不是在标记内使用<代码> JavaScript:。

如果您想这样做(更新页上的链接的所有HREF属性),您可以做

$("a").each(function() {
   $(this).attr("href", "javascript:page('" + $(this).attr("href") + "')");
});

这是一种替代方法,在href属性上不需要Javascript

$('a').click( function(e) {
    e.preventDefault();
    page(this.href);
} )

您不需要内联javascript,为什么不执行以下操作:

$("a").click(function(){
    page(this.href);
    return false;
});

在这里使用
.prop()
而不是
.attr()
可能是个好主意,但是是的。@Pointy我不明白。首先使用
javascript:
而不是单击处理程序不是一个好主意:X@Esailija我同意——我只是在OP上输入了一条评论,大意是这样的。链接到javascript很难闻。如果可能的话,使用事件而不是“javascript:”URL有点难看。为什么不使用“点击”处理程序呢?您的代码有一个bug:一个额外的右括号。它应该是
。单击(函数(e){…
$("a").click(function(e){
    e.preventDefault();
    page(this.href);
});
$("a").click(function(){
    page(this.href);
    return false;
});