@faleaksey

Сравнить значения ключей и элементов?

Доброго времени! имеется следующий код: он получает строку(параметры в URL), парсит её и далее должен сравнить значения из url со значениями элементов. Если совподает проставить checked элементу. Что я делаю не так на момент сравнения?
class Filter {
    constructor() {
        this.param = this.parsUrl();
    }

    parsUrl() {
        const qd = {};
        // location.search
        const testUrl = '?size=M&color=1,2&manufacturer=aaa,eee';

        if (testUrl) testUrl.substr(1).split("&").forEach(function (item) {
            let s = item.split("="),
                k = s[0],
                v = s[1] && decodeURIComponent(s[1]);
            (qd[k] = qd[k] || []).push(v.split(','))
        });
        return qd;
    }

    filterInit() {
        const o = this.param;
        for (let key in o) {

            let el = document.getElementsByName(key);
            for (let i = 0; i < el.length; i++) {
                // if (this.param[key][i][0] === el[i].value) {
                //     console.log(true);
                // } else {
                //     console.log(false);
                // }
            }
        }
    }
}

let filter = new Filter();


filter.filterInit();
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 2
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Без html не очень понятно какие елементы вы ищене. Может вместо document.getElementsByName(key); нужно document.getElementsByClassName(key);
Ответ написан
this.param[key][i][0] причем тут [i], это же от элементов индекс, попробуйте просто this.param[key][0]
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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