2

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

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

我怎样才能得到那个值?

4

5 回答 5

9
$("a").click(function(e){
    e.preventDefault();
    page(this.href);
});
于 2012-07-02T14:43:02.923 回答
5

尝试:

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

查看文档以attr获取有关采用函数引用的重载的信息。

尽管正如@Pointy 指出的那样,您应该考虑编写事件处理程序而不是javascript:在标记中使用。

于 2012-07-02T14:40:19.130 回答
2

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

$('a').click( function(e) {
    e.preventDefault();
    page(this.href);
} )
于 2012-07-02T14:42:52.310 回答
2

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

$("a").click(function(){
    page(this.href);
    return false;
});
于 2012-07-02T14:43:40.640 回答
1

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

$("a").each(function() {
   $(this).attr("href", "javascript:page('" + $(this).attr("href") + "')");
});
于 2012-07-02T14:40:41.190 回答