jQuery если атрибут данных добавить класс - PullRequest
0 голосов
/ 15 апреля 2020

Я действительно новичок в JS и jQuery, но я пытаюсь добавить класс "hide" к элементу, если у него есть атрибут данных со специфической c строкой. Так что, если «class» имеет атрибут рейтинга данных «0.0», класс «hide» должен быть добавлен. Это не работает, и я не знаю почему.

$(document).ready(function() {
         if ($(".class").data('rating') === ('0.0')){
         $(".class").addClass('hide');
        }
      });

1 Ответ

1 голос
/ 15 апреля 2020

jQuery распознает data-rating="0.0" как цифру c, поэтому, когда вы звоните $(".class").data('rating'), вы получаете номер 0. Следовательно, строго сравнивать ее с любой строкой не удастся.

Кроме того, ваш код не будет работать должным образом, если в данном классе более одного элемента.

$(".class").each(elem=>{
    const $elem = $(elem);
    if( $elem.data('rating') === 0) {
        $elem.addClass('hide');
    }
});

Или без jQuery (и, следовательно, неизмеримо быстрее) ...

document.querySelectorAll(".class").forEach(elem=>{
    if( parseFloat(elem.getAttribute("data-rating")) === 0) {
        elem.classList.add("hide");
    }
});

Быстрый возврат к jQuery, вы также можете сделать это:

$(".class[data-rating='0.0']").addClass('hide');

... как однострочник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...