X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Помогите решить задачу со скриптом
alex888
alex888
Topic Starter сообщение 11.4.2014, 20:10; Ответить: alex888
Сообщение #1


*Помогите

Есть скрипт, который ищет на странице восьмой тег <br /> и вставляет перед ним <div class="n2"></div>

Код
<script type="text/javascript">
$("br").eq(8).before('<div class="n2"></div>');
</script>


Мне необходимо переделать скрипт так, чтобы он искал восьмой в тексте 2 раза повторяющийся тег <br />, вот такую комбинацию вобщем: <br /><br /> и между ними вставлял <div class="n2"></div>.

Как это можно реализовать?

Надеюсь понятно обьяснил :rolleyes:

Сообщение отредактировал alex888 - 11.4.2014, 20:11
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 11.4.2014, 20:19; Ответить: andreykashops
Сообщение #2


alex888, теги всегда идут по 2 или есть вариант, что на странице будет только один тег, а не два рядом?


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex888
alex888
Topic Starter сообщение 11.4.2014, 20:30; Ответить: alex888
Сообщение #3


Бывает и 1, но будут они пропускаться или учитываться без разницы, задача вставить рекламу в середину новости, не обязательно после 8 тега или пары тегов, это потом можно подогнать, интересует именно как задать в поиск 2 тега подряд и вставить между них рекламу, если это сложно, то хотябы после или перед ними.

Пробовал даже так:
Код
$("<br /><br />").eq(8).before('<div class="n2"></div>');
, не работает.

Сообщение отредактировал alex888 - 11.4.2014, 20:38
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 11.4.2014, 20:37; Ответить: andreykashops
Сообщение #4


alex888, ну вот такое решение могу предложить...
Код
var count = 0;
$('br').each(function(){
  if($(this).prev().is('br')){
    if(++count == 8){
      $(this).before('<div class="n2"></div>');
    }
  }
});


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex888
alex888
Topic Starter сообщение 11.4.2014, 20:51; Ответить: alex888
Сообщение #5


Что то не работает, точнее работает но как то не так, тяжело проверить, определить можно только визуально. В этом варианте div помещается перед обоими тегами или между ними?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 11.4.2014, 20:55; Ответить: andreykashops
Сообщение #6


alex888, между ними.
Вставьте вот так, чтобы было визуально:
Код
var count = 0;
$('br').each(function(){
  if($(this).prev().is('br')){
    if(++count == 8){
      $(this).before('<div class="n2">+++++++++++++++++++</div>');
    }
  }
});

Обратите внимание, что ищутся br по всему сайту.

Вы можете сами указать условие поиска тегов br в самом начале, если это необходимо.


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex888
alex888
Topic Starter сообщение 11.4.2014, 21:00; Ответить: alex888
Сообщение #7


Ищутся правильно, но вставляются как то не так, отправил пример в лс
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 11.4.2014, 21:23; Ответить: andreykashops
Сообщение #8


alex888, к сожалению мой вариант рассчитан только на момент, что между парами нужных нам тегов буду еще и другие, а у вас идет текст и в нем теги - поэтому не работает корректно счет.


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Karlasan
Karlasan
сообщение 12.4.2014, 9:06; Ответить: Karlasan
Сообщение #9


топорно, но работает:

Код
<div id="text">
1
trhrth
<br /><br />jt
2
<br /><br />rtjrt
3
<br /><br />ejuertu
4
<br /><br />rt
5
<br /><br />tjuer
6
<br /><br />jue
7
<br /><br />jtyjety
8
<br /><br />tyjety
9
<br /><br />
10
</div>

<script>
tmp=document.getElementById("text").innerHTML.split("<br><br>");
html='';
for(i=1;i<=tmp.length-1;i++)
{
    if(i!=8)
    {
        html+=tmp[i-1]+'<br /><br />'
    }
    else
    {
        html+=tmp[i-1]+'<br /><div class="n2">+++++++++++++++++++</div><br />'
    }
}
html+=tmp[i-1];
document.getElementById("text").innerHTML=html;
</script>


Сообщение отредактировал Karlasan - 12.4.2014, 9:14


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex888
alex888
Topic Starter сообщение 12.4.2014, 13:50; Ответить: alex888
Сообщение #10


Karlasan, а у меня почему то отказывается работать
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 725 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1702 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2340 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12495 24.7.2020, 17:02
автор: -JamesSmips-
Открытая тема (нет новых ответов) Помогите с поиском доноров
3 tehno_music 3354 4.11.2019, 17:15
автор: goblin78


 



RSS Текстовая версия Сейчас: 20.4.2024, 3:33
Дизайн