2012-07-17 66 views
0

我想列出一個html控件(無論是按鈕,文本,無線電或複選框)具有的所有可能的屬性。 有了這個代碼的幫助:jquery選擇器所有可能的屬性列表

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,麥粒腫勒,類。 在輸入類型文本的情況下,列出這些屬性:類型,大小,編號,樣式,等級

其他可選屬性(尚無值)未列出。爲如:大小,alingn,ALT,只讀,名稱,檢查......

+0

出於好奇?你爲什麼想這麼做? – Chandu 2012-07-17 19:10:01

+0

有無數的屬性。如果我願意,我可以將'data-dog ='sparky''作爲屬性。我懷疑你要求基於特定版本的HTML的所有屬性。我會參考doctype DTD瞭解可能的屬性。 – vcsjones 2012-07-17 19:10:50

+0

不知道爲什麼你可能想要這樣做,我會建議它總是一個更好的方法來知道你期待什麼屬性/價值觀,並根據你的價值觀/他們是否存在的邏輯。更難以解釋未知數。 – 2012-07-17 19:14:34

回答

0

這裏是一個簡短的代碼和demo

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

我正在研究一個html頁面設計器,您可以在其中動態創建(drag&drp)各種html組件。我需要以某種方式檢查每個動態創建的組件可能的屬性(屬性?!),因此我可以列出它們以便用戶能夠在運行時更改它們的值。 – 2012-07-17 19:33:21

+0

好的,只需在創建元素時將div更改爲任何你想要的。你可以將這段代碼放在一個函數中,這個函數會傳遞元素或者元素的ID,並且它會返回屬性(所以就是$('elementhere')。get(0).attributes),然後處理它們一個如你所願。但是獲得所有屬性的想法是在代碼 – Nir 2012-07-17 19:47:55

+0

Nir中,它只列出了這些標準屬性:類型,值,標識,樣式,類。我認爲一個輸入(按鈕或文本)必須具有比這些更多的屬性。除了那些標準的屬性外,還有可選的屬性。這樣的可選屬性是大小,alingn,alt,只讀,名稱,檢查等等。如何獲得這些列表? – 2012-07-17 20:35:43