通过变量分配属性名称(jQuery)

时间:2013-10-24 10:46:45

标签: jquery arrays for-loop attributes

我只是想知道,是否有可能通过.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可以工作。有没有可能的方法输出属性名称的变量?

1 个答案:

答案 0 :(得分:3)

不要仅使用对象使用名称对.attr('somename','somevalue');

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

fiddle here