Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jquery и innerHTML (https://javascript.ru/forum/jquery/19064-jquery-i-innerhtml.html)

weeklyTea 25.07.2011 08:26

jquery и innerHTML
 
есть такая страничка:
<!DOCTYPE html>
<html>
<head>
	<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
	<script type="text/javascript">
		window.onload = function(){
			var notjQuery = document.getElementById('qwerty');
			var jQuer = $('#qwerty');
			alert(notjQuery.innerHTML);
			alert(jQuer.innerHTML);
		}
	</script>
</head>
<body>
	<div id="qwerty">
		qwerty
	</div>
</body>
</html>

вопрос: почему во втором алерте вылазиет 'undefined' ?

kobezzza 25.07.2011 09:08

Потому что, объект jquery - это всегда коллекция и не важно 1 там элемент или много, сделай jQuer[0].innerHTML и все будет ок. Но вообще я не рекомендую использовать это свойство с jQuery, ибо рискуете наплодить утечек памяти. В jQuery для манипуляций с DOM есть все необходимые методы.

Black_Prince 25.07.2011 11:09

потому что в jquery есть специальная функция, которая возвращает вложенный хтмл в элементе: html();

alert(jQuer.html());

weeklyTea 25.07.2011 11:14

спасибо, учту.

melky 25.07.2011 13:42

или сделать так...

jQuer*!*[0]*/!*.innerHTML

kobezzza 25.07.2011 14:11

Цитата:

Сообщение от melky (Сообщение 115263)
или сделать так...

jQuer*!*[0]*/!*.innerHTML

А я уже это писал выше:)
Цитата:

сделай jQuer[0].innerHTML и все будет ок.
Хотя ещё есть способ: jQuer.get(0).innerHTML :)


Часовой пояс GMT +3, время: 01:27.