Я пытаюсь проверить, содержит ли элемент, который вы нажали, определенный текст, и если удалите его.Если el содержит этот текст, удалите из него эту строку?
<ul class="filter option-set dropdown-menu" role="menu" aria-labelledby="dropdownMenu1" data-filter-group="Agencies">
<li><a class="btn btn-default btn-lg" href="#filter-client-any" data-filter-value="">All agencies</a></li>
<li><a id="filter-a" class="btn btn-default btn-lg" href="#filter-agency-a" data-filter-value=".A">A</a></li>
<li><a id="filter-z" class="btn btn-default btn-lg" href="#filter-agency-z" data-filter-value=".Z">Z</a></li>
<li><a id="filter-c" class="btn btn-default btn-lg" href="#filter-agency-c" data-filter-value=".c">C</a></li>
<li><a id="filter-h" class="btn btn-default btn-lg" href="#filter-agency-h" data-filter-value=".h">H</a></li>
</ul>
$(document).on('click touchend', '.filter a', function(event) {
event.preventDefault();
var self = $(this);
if(self.html().indexOf("All ")!=-1)
self.html(self.html().replace("All ", ""));
});
Приведенный выше код дает мне: Uncaught TypeError: undefined is not a function
Никогда * никогда * использовать '.html()' для управления элементами DOM - он преобразует элементы в текст, а затем обратно в узлы, уничтожая любые другие изменения или обработчики событий, зарегистрированные на этих узлах. Это нормально для создания новых элементов. – Alnitak