Создание элементов и манипулирование ими с помощью jQuery вне домена
Я попытался просмотреть этот пост, который имеет почти идентичный заголовок, но, несмотря на попытку ответа, который оказался подходящим, мой код все еще не работает.
Я создаю элемент за пределами домена, как это:
var e = $('<div class="alert"><div class="messageBox"><h1>'+type+'</h1><p class="message">'+message+'</p></div></div>');
На следующей строке я пытаюсь им манипулировать.
$('.alert',e).width($(window).width()).height($(window).height());
Как видите, я попытался определить контекст для селектора (предложение, которое я видел в другом посте), но он не работает. Может кто-нибудь указать мне, что я сделал не так?
2 ответа
.alert
Div уже в корне вашего e
переменное содержимое DOM, поэтому нет необходимости использовать контекстный параметр (который приведет к поиску внутри вашего .alert
Div для другого .alert
div, который ничего не найдет), просто сделайте так:
e.width($(window).width()).height($(window).height());
Если бы вы должны были назначить какое-то свойство для вашего .messageBox
Div, тогда будет работать, чтобы использовать параметр контекста, как вы сделали:
//this will work as .messageBox is inside your root element(.alert)
$('.messageBox',e).width(...);
$('.alert',e)
эквивалентно e.find('.alert')
который ничего не возвращает, потому что e
является .alert
Просто используйте:
e.width($(window).width()).height($(window).height());