Javascript 单击后禁用最后一个td

Javascript 单击后禁用最后一个td,javascript,jquery,Javascript,Jquery,我有django模板,如下所示: <table id="members-table" class="table table-hover table-vcenter"> <thead> <tr> <th>Fullname</th> <th>Email</th> <th>Status</th> &l

我有django模板,如下所示:

<table id="members-table" class="table table-hover table-vcenter">
    <thead>
       <tr>
          <th>Fullname</th>
          <th>Email</th>
          <th>Status</th>
       </tr>
    </thead>
    <tbody id="members_list">
         {% for member in members %}
             <tr data-member-row class="members-row" data-member-id={{ member.user_id }}>
                 <td>{{ member.user__first_name }} </td>
                  <td>{{ member.user__email }}</td>
                  <td data-member-status data-member-id={{ member.user_id }}>
                      <form method="POST">
                          <div class="checkbox" style="float: left;">
                                <input id="member-status-{{ member.user_id }}" class="magic-checkbox" type="checkbox" {% if member.active %} checked {% endif %}>
                                <label id="status-label-{{ member.user_id }}"> {% if member.active %} Active {% else %} Inactive {% endif %}</label>
                          </div>
                       </form>
                   </td>
              </tr>
          {% endfor %}
      </tbody>
 </table>
$('#members_list').on('click', '[data-member-row]', function (e) {
    var member_id = e.currentTarget.dataset['memberId'];
    alert(member_id)
})
因此,我想从单击的表行中获取
数据成员id
。使用此代码,我得到的是,这很好,但问题是,如果单击了
表行的最后一个td,我想阻止它

如果单击最后一个,我将执行其他操作。因此,如果单击最后一个td,我需要不允许执行此
警报(成员id)

有什么建议吗?

尝试使用

$('#members_list').on('click', '[data-member-row]', function (e) {
 if(!e.currentTarget.nextElementSibling){
  doSomethingElse(); return;
 }
 var member_id = e.currentTarget.dataset['memberId'];
 alert(member_id)
})
试试这个

trs = document.getElementById(tableId).getElementsByTagName('tr');
tds = trs[trs.length - 1].getElementsByTagName('td');
td = tds[tds.length - 1];
console.log(td.text());

将事件侦听器放在单元格中,而不是行中的事件侦听器

$('#members_list').on('click', 'td', function () {

    if ($(this).parent().find('td').last().index() === $(this).index()) {

        // last td was clicked

    } else {

        var member_id = $(this).parent().attr('member-id');
        alert(member_id)

    };

});

试试这个。。trs=document.getElementById(tableId.getElementsByTagName('tr');tds=trs[trs.length-1].getElementsByTagName('td');td=tds[tds.长度-1];与其听行单击,不如听单元格单击,然后在做任何事情之前检查它是否是最后一个。如果我单击最后一个td,我仍然会看到警报。解释你的答案尝试在控制台中运行选择器,看看你得到了哪些元素$(#成员名单td:非(:最后一个孩子))
$('#members_list').on('click', 'td', function () {

    if ($(this).parent().find('td').last().index() === $(this).index()) {

        // last td was clicked

    } else {

        var member_id = $(this).parent().attr('member-id');
        alert(member_id)

    };

});