2012-11-09 131 views
1

我相信有一個簡單的解決方案。獲取jQuery()選擇的默認(?)元素

開始的場景如下。 我創建<select>元件和dynamycally填充它:

function CreateDropDown(name, id, optionList) 
{ 
    var combo = $("<select></select>").attr("id", id).attr("name", name); 

    $.each(optionList, function (i, item) { 
     combo.append("<option value='"+item.val+"'>" + item.el + "</option>"); 
    }); 

    return combo; 
} 

目的是提取outerHTML。下面的作品是正確的:

combo[0].outerHTML(); 

但我覺得索引數組非常粗糙。至少在jQuery()函數返回單個元素數組的所有情況下。

問題

每當jQuery的()函數返回一個元素數組,是有可能得到不數組索引獨特元素

Demo

+0

取['第一()'](http://api.jquery.com/first/)? 'outerHTML()'究竟是什麼 - 我不知道這個。或者你的意思是本地js'outerHTML'(這不是函數)? – Christoph

+0

你想要默認的選定元素?還是獨特的元素? – Brad

+0

@布拉德:獨特。 –

回答

2

如果您覺得索引陣列非常粗糙,您可以編寫自己的漂亮的輔助方法。像一個:

window.$$ = function(){ 
    return jQuery.apply(jQuery,arguments)[0]; 
} 

用法:

var combo = $$("<select></select>"); 
console.log(combo.outerHTML); 
+0

非常好的一點。 –

1

使用.get()獲得html元素。

http://api.jquery.com/get/

+0

感謝你的回答。但是combo.get()也返回一個數組。正如jbabey所評論的那樣,我不得不將它編入索引。 –

+0

如果您只是想要第一個元素,您可以使用.first()或.get(0)或[0]。 JQuery對象只是html元素的數組。 –

3

jQuery的對象是DOM對象固有的收藏,並有治療jQuery對象圍繞一個單一的項目包裝沒有語法的方式。

jQuery文檔建議使用get method來訪問各個DOM元素。它沒有評論索引操作符和.get()之間的性能差異,但它確實表示「每個jQuery對象也僞裝成一個數組」,所以假設索引操作符只是添加了另一個方法調用就可以了。