javascript - $(this) 在 .append() 中不起作用

标签 javascript jquery append this

我正在尝试运行这段代码

$('.post').not('.compose').append('<a class = "card_mark hover" onclick = "addToDeck(\''+$('input[name=token]').val()+'\','+$(this).attr("id")+');return false"></a>');

但是 $(this).attr("id"); 返回 undefined

我不太明白这一点。有人可以帮忙吗?

最佳答案

最好通过使用事件委托(delegate)而不是使用 inline-js 来做到这一点,尤其是在包含 jQuery 时。

var elm = $('.post').not('.compose');
elm.on('click', 'a', function(){
   addToDeck($('input[name=token]').val()+'\','+ $(this).closest('.post').attr("id"));
   return false;
});

现在,您已经绑定(bind)了该事件。现在追加只需追加 <a>

elm.append('<a />', { "class" : "card_mark hover" });

关于javascript - $(this) 在 .append() 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27639241/

相关文章:

javascript - CKEditor 上下文菜单在模态中的位置不正确

jquery - $.data 的数据限制?

Javafx mvvmfx 文本区域追加

javascript - 使用 php 将 append javascript 中的值 POST 提交到 mysql

jQuery 在评论标签后插入 html

javascript - 跨域表单提交 Google 标签管理器自动触发

javascript - 使用 knockout.js 如何刷新 Select 元素中的可观察数组

javascript - 不带分隔符的 autoNumeric jQuery 插件

javascript - JavaScript 不支持带有局部变量的闭包吗?

javascript - 如何在数据表上添加动态列