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 有效。有没有可能的方法来输出属性名称的变量?

4

1 回答 1

3

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

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

在这里摆弄

于 2013-10-24T10:51:16.427 回答