Показать сообщение отдельно
  #2 (permalink)  
Старый 06.05.2013, 13:39
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Выполняя $('#test1'), вы каждый раз создаете новый экземпляр объекта jQuery. Если упростить код библиотеки, то происходит примерно следующее:
function jQuery(arg) {
	var list = document.querySelectorAll(arg), i = list.length;
	while (i--) {
		this[i] = list[i];
	}
}

function $(arg) {
	return new jQuery(arg);
}

чтобы изменить метод val для всех объектов jQuery, необходимо внести изменения в прототип:
jQuery.prorotype.val = function () {
	return "val2";
};

чтобы изменить метод val конкретного экземпляра jQuery, необходимо сохранить на него ссылку, и работать с ним по этой ссылке:
var $test = $('#test1');
$test.val = function () {
	return "val2";
};
alert($test.val());
Ответить с цитированием