0

I am trying to get the value of each list items data- with pure JS.

const meetTheTeamSectionNames = document.querySelectorAll('.team__names li');

Array.from(meetTheTeamSectionNames).forEach(name => {
  name.addEventListener('click', function(e) {
    const nameMe = e.target.getAttribute('name')
    console.log(nameMe);
  });
});
<ul class="team__names">
  <li class="current" data-name="neil">Neil Tully MW</li>
  <li data-name="kevin">Kevin Rylands</li>
  <li data-name="jane">Jane Coggins</li>
  <li data-name="ben">Ben Green</li>
</ul>

For some reason each click returns null... and I have no idea why. Any help would be awesome :)

Nope
  • 22,147
  • 7
  • 47
  • 72
Matthew Ellis
  • 89
  • 1
  • 6

1 Answers1

0

Just replace

const nameMe = e.target.getAttribute('name')

with

const nameMe = e.target.getAttribute('data-name')

Perhaps you confused with jQuery because there we have two posibilities to get value

  • $(selector).attr('data-name');
  • $(selector).data('name');, (if you use newer jQuery >= 1.4.3)

const meetTheTeamSectionNames = document.querySelectorAll('.team__names li');
    Array.from(meetTheTeamSectionNames).forEach(name => {
        name.addEventListener('click', function(e) {
            const nameMe = e.target.getAttribute('data-name')
            console.log(nameMe);
        });
    });
<ul class="team__names">
    <li class="current" data-name="neil">Neil Tully MW</li>
    <li data-name="kevin">Kevin Rylands</li>
    <li data-name="jane">Jane Coggins</li>
    <li data-name="ben">Ben Green</li>
</ul>
Mihai Alexandru-Ionut
  • 47,092
  • 13
  • 101
  • 128