【发布时间】:2013-10-24 10:46:44
【问题描述】:
我只是想知道,是否可以使用预先确定的变量通过 .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 有效。有没有办法为属性名输出一个变量?
【问题讨论】:
标签: jquery arrays for-loop attributes