Я новичок в jquery, и я столкнулся с проблемой. Я использую $()
чтобы сделать переменную объектом jquery. Но почему-то это работает не так, как ожидалось (я ожидаю, что он сможет получить доступ ко всем методам jquery для этого объекта). Вот что я сделал:
$(function() {
var form = "<div id='menu-box'></div>";
$(form).appendTo('body').css({'backgroundColor': 'blue'}); // this line works
$(form).css({'backgroundColor': 'red'}); // this line does not.
});
Я использую jquery-1.9.1, это ошибка, или я сделал что-то неправильно.
Каждый раз, когда вы пишете $(form)
, создается новый объект jQuery, который обертывает вновь созданный <div>
. Во второй раз это происходит, вы работаете над элементом, который не был вставлен в DOM.
Вместо этого создайте два соглашения, чтобы получить желаемый результат (хотя, конечно, это не имеет смысла для "реального" кода):
var $form = $("<div id='menu-box'></div>");
$form.appendTo('body').css({'backgroundColor': 'blue'});
$form.css({'backgroundColor': 'red'});