Основная проблема с вашей логикой заключается в том, что attr('id')
возвращает вас обратно pills-ficha
, что само по себе не является допустимым селектором.Вам нужно добавить к нему #
, чтобы он заработал.
Однако это ошибочный подход.У вас уже есть ссылка на сам элемент через ключевое слово this
.Создание ссылки на этот элемент, чтобы получить его id
, чтобы затем получить еще одну ссылку на тот же элемент этим id
, совершенно бессмысленно.
Таким образом, вы можете упростить логику следующим образом:
$("#pills-ficha").on("click", closePillsOnClick);
function closePillsOnClick() {
var $clicked = $(this);
var clickedIdChild = $clicked.html($clicked.html().split("By:").join(""));
if ($clicked.hasClass("active")) {
e.stopPropagation();
$clicked.removeClass("active show");
$(clickedIdChild).removeClass("active show").hide();
} else {
$(clickedIdChild).show().siblings().hide()
}
}
Вероятно, вы можете сделать то же самое со ссылкой clickedIdChild
, но ваш HTML не показывает достаточно информации, чтобы я мог дать вам пример того, как это исправить.