Получить данные-атрибут элемента с помощью другого атрибута данных в качестве идентификатора

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

Я динамически создавал элементы без идентификатора, но с идентификатором атрибута данных, таким как: data-jobtypid="2" .

Этот динамически созданный элемент имеет другие атрибуты данных, которые я хотел бы прочитать, и я знаю только data-jobtypid идентификатор as и имя класса всех динамически созданных элементов.

Итак, я попробовал что-то вроде этого:

 var cache_color = $('.addjob_choose_paymentbtn')
                   .filter('[data-jobtypid="2"]')
                   .getAttribute("data-jobtypcolorhover");
  

У кого-нибудь есть идея для меня, чтобы решить это?

С уважением

Комментарии:

1. Измените getAttribute() на attr() , который является средством получения атрибута jQuery

Ответ №1:

Просто используйте селектор атрибутов в сочетании с $.data() :

 var cache_color = $('.addjob_choose_paymentbtn[data-jobtypid="2"]')
  .data('jobtypcolorhover');

console.log(cache_color);  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="addjob_choose_paymentbtn" data-jobtypid="2" data-jobtypcolorhover="red">div</div>  

Вы можете альтернативно использовать .attr('data-jobtypcolorhover') , что является правильным способом доступа к атрибуту в jQuery, как упоминалось в комментариях выше. Однако, $.data() это крошечный очиститель бит.

Комментарии:

1. Спасибо, это сделало работу 🙂

Ответ №2:

попробуйте

 let c= document.querySelector('.addjob_choose_paymentbtn[data-jobtypid="2"]')
         .dataset.jobtypcolorhover;

console.log(c);  
 <div class="addjob_choose_paymentbtn" data-jobtypid="2" data-jobtypcolorhover="blue">Hi</div>