【问题标题】:Should I loop for every button using jquery to get the id?我应该使用 jquery 循环每个按钮来获取 id 吗?
【发布时间】:2014-12-16 03:05:38
【问题描述】:

这是我的jade文件的sn-p:

ul#posts(data-role="listview")
        - each post in posts
          li(id=post._id, class="list-group-item list-group-item-success")
            a(id="btn") 
              p #{post.post.title} &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp  #{post.post.date}

所以,这显示了从我的数据库中获取的帖子列表。 现在在 diff js 文件中使用 jquery,这就是我所拥有的:

$(function(){
$('#btn').click(function(){
    $('#myModal').modal('show');
}); 
$('#btn-save').click(function(e){
    window.location.href = "/subscribe/#{post._id}";
});
});

我正在使用引导程序创建弹出页面,让用户验证他的点击。

问题是.click 函数仅适用于我整个列表的第一个帖子 我想要的是每次用户点击任何帖子时它都会起作用。

【问题讨论】:

  • 不能在页面中重复 id,它们根据定义是唯一的,请使用 class 代替 btn 元素
  • @charlietfl 完美,这解决了我的问题!

标签: jquery twitter-bootstrap pug bootstrap-modal


【解决方案1】:

您需要使用class 选择器而不是id 选择器,因为所有ids 都必须是唯一的。一旦你修改你的按钮以拥有 .btn 和 `.btn-save' 类,你可以使用以下:

$(function(){
$('.btn').click(function(){
    $('#myModal').modal('show');
}); 
$('.btn-save').click(function(e){
    window.location.href = "/subscribe/#{post._id}";
});
});

显然没有经过测试,但这应该可以正常工作!如果这不起作用,您可能需要修改代码以使用 jQuery 的 each

编辑:我看到 cmets 已经回答了这个问题。太棒了:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 2017-05-10
    • 2015-09-01
    • 2017-10-07
    • 1970-01-01
    • 2020-09-23
    相关资源
    最近更新 更多