villiwalla
@villiwalla
HTML-верстка

Как можно сразу обратиться к элементу возвращаемого объекта функции?

Например есть функция которая возвращает объект:
var getActiveTab = function() {
        document.querySelectorAll('.cont-tabs a').forEach(function (elem, i, arr) {
           if(elem.className === 'selected') {
               return {
                   id: elem.getAttribute('href').match(/[\d]+/)[0],
                   tabId: '#tab-content-'+this.id
               }
           }
        });
    };


Есть ли возможность вызвать функцию и обратиться к элементу объекта и поучить его значение, например: `getActiveTab().id` и получаем ID. Знаю что можно вернуть просто `this`.
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Можно-то можно, только вот у вас код бессмысленный. То, что возвращается из forEach попадает вникуда - никто эти результаты не использует и не может использовать. Возможно, вам нужен метод .filter? В любом случае, результатом будет массив объектов.

Вот как должен выглядеть ваш код:
var getActiveTab = function() {
    var activeTab = document.querySelector('.cont-tabs a.selected');
    var id = activeTab.getAttribute('href').match(/[\d]+/)[0];

    return {
        id: id,
        tabId: '#tab-content-' + id
    };
};

И тогда уже можете смело писать getActiveTab().id
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы