Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) jQuery Не работает функция after(). Помогите найти причину

Не работает функция after(). Помогите найти причину


     21.03.2016    jQuery    576

вопрос
Добрый день! Не работает функция after() в шаблоне. Пробую поставить рекламу или текст вместо неё в определенное место, не отображается. Помогите найти причину

Ответил: Sander


Скорее всего проблема не с .after(), а с :last-child
это легко проверить прописав в консоли:
$('#dle-content .news-box:last-child').html();


Такой код должен помочь:
$('#dle-content .news-box').last().after(rek2);

Комментарии пользователей (6)

3970
20 | 2

3970 - 21 марта 2016 15:44 - Юзер

Сайт скину в личку!

3970
20 | 2

3970 - 21 марта 2016 15:46 - Юзер

***Комментарий удален***

3970
20 | 2

3970 - 21 марта 2016 15:46 - Юзер

Проблема с этим кодом
 var rek1 = $('#rekblock1').html();
$('#dle-content .news-box:first-child').before(rek1); //вставляет хтмл из блока rekblock1 ПЕРЕД первым элементом с классом .news-box    
var rek2 = $('#rekblock2').html();
$('#dle-content .news-box:last-child').after(rek2); //ДОЛЖЕН вставлять хтмл из блока rekblock2 ПОСЛЕ последнего элемента с классом .news-box

nowheremany
192

1659 | 1292

nowheremany - 21 марта 2016 16:09 - Эксперт

Почему не используте .append() и .prepend()?
$('#dle-content .news-box').prepend($('#rekblock1').html()).append($('#rekblock2').html());

Единственное - $('#dle-content .news-box') должен быть на странице
Для проверки можно сделать так
if($('#dle-content .news-box').length<1)console.log('Нет главного элемента')
if($('#rekblock1').length<1)console.log('Нет рекламы 1')
if($('#rekblock2').length<1)console.log('Нет рекламы 2')

В консоль ошибки упадут

Благодарность принимаю тут Связь

ravchik
66

375 | 123

ravchik - 21 марта 2016 17:36 - Юзер

.prepend() еще можно, а вот .append() не прокатит, т.к. он вставит в самый конец блока, т.е. после навигации, а нужно именно ДО навигации (блоков с классом .news-box несколько).
Цитата: nowheremany
Единственное - $('#dle-content .news-box') должен быть на странице
блоки с таким классом однозначно присутствуют на странице (.before() работает же).
Я так думаю, что происходит какой-то конфликт скриптов... но что именно с чем - я не смог найти

nowheremany
192

1659 | 1292

nowheremany - 22 марта 2016 17:46 - Эксперт

Вам надо определить что и куда вставлять. через консоль. возможно явно определить через класс или ид

Благодарность принимаю тут Связь

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы