#javascript #jquery #html
#javascript #jquery #HTML
Вопрос:
На самом деле я пытаюсь передать элемент td, с которым я должен выполнить некоторые операции при td click или, лучше, у меня есть функция, в которой я использую следующий код
var tr = document.getElementById($('#tavolo').val());
$(`td:eq(${inizio})`, tr).css('background-color', 'red') .attr("onclick","Elimina('" tr "');");
когда пользователь нажмет на td, он откроет модал, а затем в этом модале есть кнопка, которая вызывает другую функцию, которая удалит некоторые элементы из этого td.
Проблема в том, что «[object HTMLTableRowElement]» передается как элемент tr, поэтому я не могу выполнить с ним какую-либо операцию.
Если это полезно, вот функция Elimina
function Elimina(tr) {
$('#del').attr("onclick", "eliminaPrenotazione('" tr "');");
}
Пока здесь есть функция eliminaPrenotazione
function eliminaPrenotazione(tr) {
var start = 1;
for (i = 0; i <= 8; i ) {
$(`td:eq(${start})`, tr).css('background-color', 'white').removeAttr("class").find('span').remove();
}
}
Вот html-код того, как выглядит td (я не могу опубликовать весь html, поскольку в нем 96 похожих td)
<td style="padding: 0px; position: relative; background-color: red;" class="48:15" data-inizio="12:00" data-fine="16:00" onclick="Elimina('48:15','Ihor','12:00','16:00','[object HTMLTableRowElement]');"><span class="tag" style="width: 160px; overflow: hidden;" onmouseover="highlight(this);" onmouseout="unhighlight(this)">Ihor</span></td>
Комментарии:
1. пожалуйста, поделитесь html
2. Почему вы смешиваете DOM и jquery. Выберите один. Почему вы добавляете обработчик событий с помощью attr? Вы должны использовать on или click/ .
3. @epascarello на самом деле я не мог использовать click, поскольку это динамически создаваемая таблица, и только определенный td в ней будет иметь onclick, это плохая практика смешивать DOM и jquery?
4. @brk добавил код того, как выглядит td
5. если это динамически сгенерированная таблица, добавьте прослушиватель событий щелчка к ее родительскому элементу, поскольку javascript является большим поклонником обработки событий, вы поймаете событие щелчка там.
Ответ №1:
Я просто собираюсь дать вам указание, чтобы попытаться направить вас на правильный путь.
Вы можете сделать что-то похожее на это :
$("#yourBtnID").click(function(elem){
$("#yourDivID").append("<td>" elem "</td>");
});
это добавит строку td к каждому щелчку в основном
Теперь вы можете попробовать изменить свой собственный код и вернуться, если у вас не получится
Удачи 😉
Комментарии:
1. На самом деле я все еще использую кнопку click on the form, но это временная шкала, на которой интерактивный td будет создаваться динамически или загружаться с сервера
2. да, я видел, я имел в виду, что вы должны использовать функцию append, например, потому что она добавляет в DOM при каждом нажатии