2009-04-19 2 views
3

Я пытаюсь понять, почему вы использовали бы jQuery.get() and jQuery.get(index). Документы говорят, что нужно преобразовать выбор jQuery в необработанный объект DOM вместо того, чтобы работать с выбором как объект jQuery и доступные ему методы.jQuery.get() - Практическое использование?

Так быстрый пример:

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

так же, как:

$("div").html(); 

Очевидно, что это плохой пример, но я изо всех сил, чтобы понять, когда вы будете использовать .get(). Можете ли вы помочь мне понять, когда я буду использовать этот метод в своем коде?

ответ

1

Коди Линдли (JQuery член команды) имеет 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

Это может пригодиться, если делать что-то подобное (psuedocode):

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

Есть моменты, когда вам может понадобиться передать реальный объект DOM к другим функциям, которые не могут быть в состоянии справиться с JQuery объект.

4

Это происходит часто, когда вы хотите вызвать собственный JS-метод для элемента.

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

Можно также заставить нажать кнопку Submit $ ("# вход представить") нажмите кнопку(). сделать то же самое. – RedWolves

+0

Хм ...У меня тоже был мозг. Существует также метод jQuery, который вызовет представление. $ ('# MySearchForm') представляет(). также будет работать. Я не считаю ваш ответ практическим использованием get(). – RedWolves

0

Другое возможное использование get() - это когда вы работаете с деревьями XML в jQuery.

+0

Можете ли вы привести простой пример кода? – RedWolves

+0

Просто что-то глупое: var xml = $ (' Заглавие'); var title = $ ('title', xml) .get (0); У меня нет практических применений для этого, но я могу представить себе больше обстоятельств, когда вы хотите, чтобы DOM лежал за пределами HTML-земли (скажем, бросая дерево в сокет XPath или что-то в этом роде) – cbeer

4

Иногда вы используете JQuery в режиме noConflict, и вы хотите сделать что-то вроде:

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

А потом что-то сделать в прототипе:

$(element).whatever(); 
+1

Я думаю, что это является наилучшим практическим вариантом использования до сих пор. Я все еще надеюсь на случай использования, который не зависит от другой библиотеки. – RedWolves

+0

Я думаю, вы обнаружите, что 'get' просто для полноты. Например, вы можете превратить элемент DOM в объект jQuery с el = $ (document.getElementById («что-то»)), поэтому вы должны иметь возможность превратить объект jQuery в элемент DOM с помощью el.get(). – rfunduk

2

Это полезно для доступа к любому методу JavaScript который не отображается через jQuery. Например, перед JQuery поддерживается смещение(), я обычно использую get() как это:

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

В качестве другого примера, я использовал этот последнее время для определения scrollHeight элемента.

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

Это также можно записать в виде:

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

Это замечательно, есть ли список свойств/методов DOM, которые еще не поддерживаются в jQuery, которые могут быть полезны с методом get()? Это было бы хорошо знать. – RedWolves

+0

Я задал следующий вопрос, и теперь я не уверен, что ваш ответ настолько практичен. Http://stackoverflow.com/questions/770475/dom-properties-methods-that-arent-available-in-jquery/770719#770719 – RedWolves

0

Я использую его, чтобы получить идентификатор для одного элемента

$(selector).get(0).id 
Смежные вопросы