получить rowIndex кнопку в таблице - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь получить 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 есть, когда я нажимаю кнопку.

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Небольшой рефакторинг в вашем коде:

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 не может быть тем, что вы ожидаете ;
  4. $(function() { }) не для этой цели, он используется для привязки события к событию document.ready.Его не следует использовать внутри другого события;
  5. Попробуйте дать функциональные имена переменным.Избегайте имен, таких как b или c.
0 голосов
/ 23 сентября 2019

Это была эта строка:

$('.btnEditMenge').on('click', ()=>{

Это работает, когда я изменяю это на

$('.btnEditMenge').on('click', function(){

Я всегда думал, что это то же самое ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...