Удаление атрибутов данных из HTML с помощью jQuery
Похоже, это не сработает ...
У меня есть страница, которая скрывает определенные ссылки. Когда DOM загружен, я использую jQuery для переключения некоторых из этих элементов. Это обусловлено использованием атрибута данных следующим образом:
<div class="d_btn" data-usr='48'>
<div class="hidden_button">
Тогда у меня есть код:
$.each($(".d_btn"), function() {
var btn = $(this).data('usr');
if ( btn == '48' ){
$(this).children('.hidden_button').toggle();
}
Выше все работает как запланировано. Проблема в том, что я пытаюсь удалить data-usr из класса .d_btn после вычисления оператора if. Я попробовал следующее, и ничего не работает (то есть, после загрузки страницы источник все еще показывает атрибут data-usr:
$(this).removeAttr("data-usr");
$(this).removeData("usr");
Я работаю над этим уже пару часов и ... ничего! Помощь очень ценится!
UPDATE
Я попробовал отличные предложения по установке атрибута данных в пустую строку, но я все еще не получаю желаемого результата.
Чтобы пояснить немного подробнее, причина, по которой я пытаюсь удалить атрибут, заключается в том, что когда ответ ajax добавляет другой элемент на страницу, у ранее добавленных элементов уже будет кнопка либо показанная, либо скрытая. После ответа AJAX я вызываю ту же функцию после загрузки DOM.
В настоящее время, когда что-то добавляется через AJAX, он переключает все кнопки (показывая те, которые были скрыты, и наоборот.) Тьфу ...
Я также полностью готов попробовать альтернативы моему подходу. Спасибо!
UPDATE
Ну, лампочка только что вспыхнула, и я могу делать то, что хочу, просто используя .show () вместо .toggle ()
В любом случае, я все еще хотел бы найти ответ на этот вопрос, потому что страница будет потенциально проверять сотни элементов всякий раз, когда что-то добавляется - это кажется ужасно неэффективным (даже для компьютера, хахаха.)