Я очень плохо знаком с jquery и не смог найти решение своей проблемы.У меня есть таблица, созданная для некоторых сообщений.В начале строки сообщений есть значок fontawesome
, показывающий, что сообщение не развернуто.После того, как я нажал и развернул, я хочу, чтобы этот значок изменился на другойЯ играл с функцией, найденной в другом месте на этом сайте, которая использует значение первого <td>
в строке, чтобы показать либо +
, либо -
.
Вот функция, за которой следует моя таблица:
$(function() {
$("td[colspan=7]").find("p").hide();
$("table").click(function(event) {
event.stopPropagation();
var $target = $(event.target);
if ( $target.closest("td").attr("colspan") > 1 ) {
$target.closest("td").children("p").slideUp();
$target.closest("tr").prev().find("td:first").html("+");//NOT MINE - CHANGE
} else {
$target.closest("tr").next().find("p").slideToggle();
if ($target.closest("tr").find("td:first").html() == "+")//NOT MINE - CHANGE
$target.closest("tr").find("td:first").html("-");//NOT MINE - CHANGE
else
$target.closest("tr").find("td:first").html("+"); //NOT MINE - CHANGE
}
});
});
...
echo "<tr class='message-body'>";
echo "<th><i class='far fa-envelope'></i> ".$title."</th>";
echo "<th></th>";
echo "<th>".$date."</th>";
echo "<th></th>";
echo "<th></th>";
echo "<th></th>";
echo '<th><div class="right"><form method="post" action="">
<input type="hidden" name="id" value="'.$id.'">
<button class="rem-button"> Delete</button></form></div></th>';
echo "</tr>";
echo "<tr colspan='7'><td class='message-body-body' colspan='7'><p><br>".$body."</p></td></tr>";
В идеале я хочу сделать что-то вроде:
closed-> первый <i>
класс = дальний фа-конверт
открыт -> первый <i>
класс = дальний фа-конверт
РЕДАКТИРОВАТЬ
В настоящее время функция позволяет мне щелкнуть строку и развернуть ее, чтобы показать тело сообщения.Перед расширением хочу сохранить значок envelope
.После расширения я хочу, чтобы этот значок изменился на envelope-open
.
РЕДАКТИРОВАТЬ 2
Мне нужна эта строка
$target.closest("tr").prev().find("td:first").html("+");
изменена на эту(но функционально)
$target.closest("tr").prev().find("i:first").class.html("far fa-envelope");
другие строки, которые необходимо изменить, аналогичным образом будут
РЕДАКТИРОВАТЬ 3 решение, на котором основан мой вопросиз
РЕДАКТИРОВАТЬ 4 My Fiddle Не уверен, как связать Fontawesome здесь