Страницы

Поиск по вопросам

вторник, 11 июня 2019 г.

Jquery: почему не работает indexOf в массиве?

Есть массив, заполненный ячейками таблицы. Хочу, чтобы при клике на ту или иную ячейку мне возвращался её индекс в массиве. Но почему-то всегда возвращается -1. В чём здесь загвоздка?
var arr = []; $('td').each(function(){ arr.push($(this)); }); $('td').click(function(){ console.log(arr.indexOf($(this))); }); table { border-collapse: collapse; } table td { padding: 20px; text-align: center; vertical-align: middle; border: 1px solid black; }



Ответ

В вашем случае this - это элемент td. Замените $(this) на this
var arr = []; $('td').each(function(){ arr.push(this); }); $('td').click(function(){ console.log(arr.indexOf(this)); }); table { border-collapse: collapse; } table td { padding: 20px; text-align: center; vertical-align: middle; border: 1px solid black; }


Комментариев нет:

Отправить комментарий