Получить атрибут элемента в var с несколькими элементами html js / jquery - PullRequest
0 голосов
/ 13 июня 2018

У меня есть div с несколькими a элементами.

    <div class="vertical-menu">
        <a href="#" data-actiontime="0" class="listItemActive">
        <strong class="time">00:00</strong> || <strong class="action">Action x</strong>
        </a>
        <a href="#" data-actiontime="36" >
        <strong class="time">00:36</strong> || <strong class="action">Action y</strong>
        </a>
</div>

Каждый a вызывает функцию myClickHandler при нажатии.

Например, при нажатии в 1'st a:

function myClickHandler(evt)
{

    evt.preventDefault();

    var elemReceived, attrValue, aElem;

    elemReceived = evt.currentTarget;

    console.log(elemReceived); //it outputs the "a" with the childs elements "strong" ... ok
    aElem = $(elemReceived).find('a'); //get only the "a" element
    console.log(aElem); //it outputs "w.fn.init [prevObject: w.fn.init(1)]length: 0prevObject: w.fn.init [a.listItemActive]__proto__: Object(0)

    attrValue =  $(aElem).attr("data-actiontime"); //alse tried with: aElem.getAttribute("data-actiontime"); but still not working
    console.log(attrValue); //it outputs "undefined"!!!!

globalVarY = attrValue ;
        aElem.setAttribute("class", "listItemActive");

    }

Какэто можно решить?


Редактировать 1:

function setListItemClickBehaviour()
{
    var aElements;

    aElements = document.querySelectorAll(".vertical-menu a");
                aElements.forEach(function (aElements)
                {
                    aElements.addEventListener("click", myClickHandler);
                });

}//setListItemClickBehaviour

1 Ответ

0 голосов
/ 13 июня 2018

Вы можете прочитать атрибут, как я показываю вам во фрагменте кода ниже:

function myClickHandler(evt) {
  console.log(this.getAttribute('data-actiontime'));
}

function setListItemClickBehaviour() {
  var aElements = document.querySelectorAll(".vertical-menu a");
  aElements.forEach(function(aElements) {
    aElements.addEventListener("click", myClickHandler);
  });

}

setListItemClickBehaviour();
<div class="vertical-menu">
  <a href="#" data-actiontime="0" class="listItemActive">
    <strong class="time">00:00</strong> || <strong class="action">Action x</strong>
  </a>
  <br />
  <a href="#" data-actiontime="36">
    <strong class="time">00:36</strong> || <strong class="action">Action y</strong>
  </a>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...