javascript - 获取 tablerow 中的按钮 rowIndex

标签 javascript jquery

我尝试获取表中按钮的 rowIndex?没有什么对我有用:

let tr = $('<tr class="tableRow"></tr>');
let td = $('<td class="noWrap"></td>');

let btn = $('<button type="button" class="btn btnEdit"></button>');
td.html(btn);

tr.html(td);
$('#table1 > tbody:last-child').append(tr);

$('.btnEditMenge').on('click', ()=>{
    $(function(){
        let rowindex = $(this).clostest('tr').rowIndex     // undefined
        let c = $(this).closest('.tableRow');              // Array[0]
        let b = $(this).parent();                          // Array[0]
    });
});

onClick 监听器中的注释是,当我单击按钮时。

最佳答案

对代码进行一些重构:

let tr = $('<tr class="tableRow"></tr>');
let td = $('<td class="noWrap"></td>');
let btn = $('<button type="button" class="btn btnEdit"></button>');

btn.appendTo(td);
td.appendTo(tr);
tr.appendTo($('#table1 > tbody:last-child'));

// Or: 
// btn.appendTo(td.appendTo(tr.appendTo($('#table1 > tbody:last-child'))));

$('.btnEditMenge').on('click', function() {
    let $btn = $(this);
    let rowindex = $btn.closest('tr').index();
    let $tableRow = $btn.closest('.tableRow');
    let $parent = $btn.parent(); 
});
  1. 使用appendTo() (或 append()before() 等...)而不是 html()附加 DOM 元素;
  2. 使用index()获取任意元素的索引;
  3. 不要对事件使用箭头函数this could not be what you're expecting ;
  4. $(function() { })不是用于此目的,它用于绑定(bind) document.ready 事件中的事件。它不应该在另一个事件中使用;
  5. 尝试为变量提供函数名称。避免使用诸如 bc 之类的名称。

关于javascript - 获取 tablerow 中的按钮 rowIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58062589/

相关文章:

javascript - 为什么这个元素在 CSS 动画期间会水平移动(仅在 IE 中)?

javascript - 如何弹出消息并将过期时间设置为存储在本地存储中的消息状态?

javascript - 将一张图片换成另一张关于悬停的图片

javascript - 为什么我需要点击两次才能运行一个功能?

javascript - 单击另一个元素时如何禁用元素?

javascript - 简单的 JSFiddle。当我运行一个函数时,它输出代码而不是结果

javascript - 从 API 结果覆盖索引数组

javascript - 如何为数组 jschema 对象设置默认值?

php - ajax查询后设置复选框状态

javascript - 如何使用AJAX/PHP/JAVASCRIPT根据另一列实时显示数据值?