Назначение имен атрибутов через переменные (jQuery)

0

Мне просто интересно, возможно ли вообще назначить имя атрибута через.attr(), используя предопределенную переменную? Пример ниже покажет, что я имею в виду.

HTML

<select id="dobPicker" data-test="1" data-another-test="2">
    <option></option>
</select>

<div class="select">
    <ul>
        <li>
    </ul>
</div>

JQuery

$(document).ready(function() {
    var attrs = $("select")[0].attributes;

    for (var i = 0; i < attrs.length; i++) {
        var attrName = attrs[i].nodeName,
            attrVal = attrs[i].nodeValue;

        if (attrVal.length == 0) {
            attrVal = "NULL";
        }

        $(".select").attr({
            attrName: attrVal
        });
    }
});

Пожалуйста, имейте в виду, это очень короткий пример. У меня есть намного более сложные методы для создания пользовательского выбора, предварительно обернув исходный выбор в <div class='select'>, но в любом случае это не имеет значения. Поскольку вы можете увидеть, что имена атрибутов и переменные возвращаются, проблема в том, что (очевидно, они будут) attrName отображается как attrName, а не эквивалент переменной, тогда как attrVal работает. Есть ли способ вывода переменной для имени атрибута?

Теги:
arrays
for-loop
attributes

1 ответ

3
Лучший ответ

не используйте использование объекта просто имя значение пара .attr('somename','somevalue');

 $(".select").attr(attrName, attrVal);

скрипка здесь

  • 0
    Хорошее мышление, ура! Всегда заканчивайте длинный путь вокруг короткого решения ..
  • 1
    ура !!! рад, что это помогло .... счастливое кодирование .. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню