Я пытаюсь получить соответствующие элементы, которые содержат несколько кнопок, которые могут быть нажаты. В качестве примера я хотел бы получить строку таблицы, которая содержит кнопку, по которой была нажата кнопка.
В приведенном ниже коде нажатие вызывает соответствующий JavaScript, но «ближайший» возвращает объект, который не является одной из строк таблицы. Я также пробовал event.target
вместо этого и parents
вместо closest
, но ни один не работал.
$(".ok").on("click", function(event) {
console.log("ok clicked! " + JSON.stringify(event));
var row = $(this).closest("tr");
console.log("event = " + event.target.nodeName);
console.log("outer type = " + typeof(row));
console.log("outer id = " + row.id);
console.log("outer = " + JSON.stringify(row));
});
<table>
<tr class="outer" id="id-1">
<td>
<button type="button" class="ok">B1</button>
</td>
</tr>
<tr class="outer" id="id-2">
<td>
<button type="button" class="ok">B2</button>
</td>
</tr>
</table>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.3.1/dist/jquery.min.js"></script>