Jquery未定义为jquery.parent()。attr()

时间:2012-02-06 18:31:40

标签: jquery mustache

这是父div,它是使用Moustache.js

创建的html模板
<div class="downloadReport" param ="{{#params}}{{id}}{{/params}}"><a href="#">
<img class="downloadMVReportFromAdmin" alt ="{{mainTitle}}" src="{{indexPageImageURL}}"  
/><br/>'
'<input type="button" id="{{id}}-button" value="Download"   
class="downloadMVReportFromAdmin" param="{{#params}}{{paramValue}}{{/params}}"/></a>
</div>'

我正在尝试使用

$(.downloadMVReportFromAdmin).live('click',function(){
    var url = $(this).parent('.downloadReport').attr("param");
    alert(url);
}

我为变量url获取了未定义的值 我只是遵循jquery站点中为jquery.parent()提供的语法。如果我错了,请纠正我。

2 个答案:

答案 0 :(得分:8)

您应该使用.closest代替.parent

.parent仅匹配直接父级,而.closest会在DOM上查找,直到找到与您的选择器匹配的内容。

答案 1 :(得分:1)

缺少引号,需要另一个parent()调用

$('.downloadMVReportFromAdmin').live('click',function(){
var url = $(this).parent().parent('.downloadReport').attr("param");
alert(url);
});