$(this).attr(“href”)不起作用

时间:2012-07-02 14:38:38

标签: javascript jquery html

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

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

我怎样才能获得这个价值?

5 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:5)

尝试:

$("a").attr("href", function (index, oldHref) {
    return "javascript:page('" + oldHref + "')");
});

查看attr的文档,了解有关带有函数引用的重载的信息。

虽然@Pointy指出,你应该考虑编写一个事件处理程序,而不是在你的标记中使用javascript:

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

你不需要内联javascript,为什么不这样做:

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

答案 4 :(得分:1)

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

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