jQuery返回“undefined”试图找到href

时间:2011-03-24 17:49:49

标签: jquery href undefined attr

我正在尝试将其包装成一个函数:

//Entire Div Clickable
function clickableDiv(){
window.location = $(this).find("a").attr("href");
return false;
}

然后通过以下方式调用它:

$("div.promo1").click(function(){
clickableDiv();
});

但它会返回以下网址:www.mywebsite.com/undefined

任何想法我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:4)

麻烦的是你正常地调用clickableDiv,而不是将它绑定到事件。您是从事件处理程序运行它,而不是将其设置为作为事件处理程序。这意味着this未设置为元素。

您应该将该函数设置为事件处理程序。

$("div.promo1").click(clickableDiv);

答案 1 :(得分:1)

function clickableDiv(div) {
    window.location = $(div).find("a").attr("href");
}

$("div.promo1").click(function() {
    clickableDiv(this);
});

您必须将对DIV的引用传递给clickableDiv函数。


更新:替代解决方案:

function clickableDiv() {
    window.location = $(this).find("a").attr("href");
}

$("div.promo1").click(clickableDiv);