2009-04-19 70 views
3

我想了解爲什麼你會使用jQuery.get() and jQuery.get(index)。該文檔說,它是將jQuery選擇轉換爲原始DOM對象,而不是將選擇作爲jQuery對象及其可用方法處理。jQuery.get() - 實際用途?

所以一個簡單的例子:

$("div").get(0).innerHTML; 

是一樣的:

$("div").html(); 

顯然,這是一個壞榜樣,但我很努力的身影時,你會用.get()。你能幫我理解何時在我的代碼中使用這種方法嗎?

回答

1

科迪林德利(jQuery開發團隊成員)有如果你需要,你爲什麼會使用get()

一個great example緩存一組元素,因爲您即將刪除它們,jQuery get()方法非常方便。例如,在下面的代碼中,我將所有<li>元素保存在數組的頁面中,將其刪除,然後使用此數組將其添加回頁面。合理?

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script> 
</head> 

<body> 

<ul> 
    <li>test</li> 
    <li>test</li> 
    <li>test</li> 
    <li>test</li> 
    <li>test</li> 
    <li>test</li> 
    <li>test</li> 
    <li>test</li> 
</ul> 

<script> 

var test = $('ul li').get(); 

$('ul').empty(); 

$.each(test, function(){ $('ul').append('<li>'+$(this).html() + ' new</li>'); }); 

</script> 
</body> 
</html> 
3

這可能會派上用場做這樣的事情(僞代碼)時:

a = $("div").get() 
ajaxsend(a) 

有些時候,你可能需要通過實際的DOM對象的其他功能,這可能無法處理的jQuery目的。

4

當你想調用一個元素的原生JS方法時,經常發生這種情況。

//submitting a form... 
$('#mySearchForm').get().submit(); 
+0

你也可以強制點擊提交按鈕$( 「#輸入提交」)點擊()。做同樣的事情。 – RedWolves 2009-04-19 17:05:32

+0

嗯......我今天早上也有一個腦部放屁。還有一個將觸發提交的jQuery方法。 $( '#mySearchForm')提交()。也將起作用。我不認爲你的答案是使用get()。 – RedWolves 2009-04-19 23:18:35

0

get()的另一種可能用法是在jQuery中使用XML樹時。

+0

你能提供一個簡單的代碼示例嗎? – RedWolves 2009-04-19 17:14:46

+0

只是愚蠢的一樣: var xml = $('標題'); var title = $('title',xml).get(0); 我沒有任何實際的用途,但我可以想象更多的情況下,你想在HTML土地之外的底層DOM(比如把樹扔到XPath匹配器或其他東西中......) – cbeer 2009-04-19 20:04:56

4

有時候你在noConflict模式下使用jQuery和你想要做的事,如:

var element = jQuery('#jquery_selectors .are > .awesome[and=fast]').get(0); 

然後做產品原型:

$(element).whatever(); 
2

這是訪問的任何JavaScript方法有用這不是通過jQuery公開的。例如,支持的jQuery的偏移()之前,我會通常使用get()這樣的:

var offTop = $(element).get(0).offsetTop; 

對於另一個實例,我最近使用此來確定元素的scrollHeight屬性。

var scrollHeight = $(element).get(0).scrollHeight; 

這也可以寫成:

var scrollHeight = $(element)[0].scrollHeight; 
0

我用它來獲取ID爲單個元素

$(selector).get(0).id 
相關問題