2013-10-24 34 views
0

我只是想知道,是否有可能使用预定义变量通过.attr()分配属性名称?下面的例子说明我的意思..通过变量(jQuery)分配属性名称

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的作品。有没有任何可能的方式来输出属性名称的变量?

回答

3

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

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

fiddle here

+0

善于思考,干杯!总是结束很短的解决方案.. – Banny

+1

欢呼!很高兴它帮助....快乐编码.. :) – bipen