Создание элементов и манипулирование ими с помощью 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());
Другие вопросы по тегам