Javascript $(this.attr(';href';)返回未定义的
好的,我知道有很多关于JQuery.attr未定义的帖子,但是我还没有找到一个可以解决这个问题的帖子,甚至没有给我一个提示 首先,我有一个Ajax请求,它填充了一个ul,如下所示Javascript $(this.attr(';href';)返回未定义的,javascript,jquery,Javascript,Jquery,好的,我知道有很多关于JQuery.attr未定义的帖子,但是我还没有找到一个可以解决这个问题的帖子,甚至没有给我一个提示 首先,我有一个Ajax请求,它填充了一个ul,如下所示 $.each(msg,function(key, value){ ul.append('<li class="fa fa-angle-right cnt-link"><a href="'+key+'">'+value+'</a></li>');
$.each(msg,function(key, value){
ul.append('<li class="fa fa-angle-right cnt-link"><a href="'+key+'">'+value+'</a></li>');
})
cnt变量设置得很好,所以我看不出$(这)没有引用正确的对象,但试图获取href返回未定义的值会有什么问题
我还尝试使用
ul.append('<li class="fa fa-angle-right cnt-link"><a href="#">'+value+'</a></li>').data("cntId", key);
但这也返回未定义,所以我开始思考可能是$(这)没有选择正确的对象
我对此束手无策,如果有人能看到我犯了什么愚蠢的错误,我将不胜感激:)
cnt-link
是一个,因此它没有href
属性。如果要在使用代码创建的li
中获取href
ul.append('<li class="fa fa-angle-right cnt-link"><a href="'+key+'">'+value+'</a></li>');
或者,使用.cnt链接
上的处理程序,首先选择.cnt链接
的.children
以访问
@当然性能非常感谢您。我知道这将是一件非常愚蠢的事情,我忽略了,而你是正确的。我甚至没有想到,var cntId = $(this).data('cntId');
ul.append('<li class="fa fa-angle-right cnt-link"><a href="'+key+'">'+value+'</a></li>');
$('.cnt-link > a').click(function(event){
$('.cnt-link').click(function(event){
event.preventDefault();
var cntId = $(this).children().attr('href');
console.log(cntId);
})