jquery选择器所有可能的属性列表

时间:2012-07-17 19:07:24

标签: jquery attributes components loops

我想列出html控件(无论是按钮,文本,广播还是复选框)所具有的所有可能属性。 借助此代码:

var attrs = $("#mybutton").attributes;
$.each(attrs, function(i, attrib)
{
  var name = attrib.name;
  var value = attrib.value;
});

我可以获得有值的属性列表。但我想要更多,我需要能够列出所有可能的属性,而不仅仅是那些有价值的属性。 谢谢。


有一个页面包含一些动态创建的控件我想列出一个控件可以拥有的所有属性(标准+可选):

$("#dropableDiv").delegate('.ui-draggable','click',function() 
{
    listAttributes(this.attributes);
});

但是使用此listAttributes方法只显示一些standrd属性(动态创建控件时指定的属性):

function listAttributes(attrs)
{
     $("#at").append("list of attributes:</br>");
     $("#at").append("<table>");

     $.each(attrs, function(i, attrib)
     {
     $("#at").append("<tr>");
         var name = attrib.name;
         var value = attrib.value;
         $("#at").append("<td>");
         $("#at").append(name);     
             $("#at").append("</td>");
         $("#at").append("<td>");
         $("#at").append('<input type="text" id="prop' + name + '" value="' + value + '" /></br>'); 
             $("#at").append("</td>");
     $("#at").append("</tr>");      
     });
     $("#at").append("</table>");

}   

例如:在输入类型按钮的情况下,列出了这些属性:类型,值,id,样式,类。         在输入类型文本的情况下,列出了这些属性:类型,大小,id,样式,类

未列出其他可选属性(尚无值)。例如:size,alingn,alt,readonly,name,checked ...

1 个答案:

答案 0 :(得分:0)

这是一个简短的代码和demo

var attrs = $('div').get(0).attributes;
console.log($(attrs));
$(attrs).each(function(i,item)
              {
                   console.log(item.nodeName);
                  console.log(item.nodeValue);                  
              });