Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 30
1

Как несколько скриптов объединить в один

26.06.2014, 07:11. Просмотров 1935. Ответов 11
Метки нет (Все метки)


Такой вопрос: есть несколько скриптов:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<script type="text/javascript">
var htmlText = document.getElementById('htmlText');
var txt = htmlText.innerHTML;
var new_txt = txt.replace('<a href="/publ/po_vremeni_prigotovlenija/na_skoruju_ruku/123" class="entAllCats">На скорую руку (до 10 минут)</a>','</div><a href="/publ/po_vremeni_prigotovlenija/na_skoruju_ruku/123" class="entAllCats">На скорую руку (до 10 минут)</a><div style="display:none">');
 htmlText.innerHTML = new_txt;
 </script>
<script type="text/javascript">
var htmlText = document.getElementById('htmlText');
var txt = htmlText.innerHTML;
var new_txt = txt.replace('<a href="/publ/po_vremeni_prigotovlenija/do_30_minut/124" class="entAllCats">До 30 минут</a>','</div><a href="/publ/po_vremeni_prigotovlenija/do_30_minut/124" class="entAllCats">До 30 минут</a><div style="display:none">');
 htmlText.innerHTML = new_txt;
 </script>
 <script type="text/javascript">
var htmlText = document.getElementById('htmlText');
var txt = htmlText.innerHTML;
var new_txt = txt.replace('<a href="/publ/po_vremeni_prigotovlenija/do_1_chasa/125" class="entAllCats">До 1 часа</a>','</div><a href="/publ/po_vremeni_prigotovlenija/do_1_chasa/125" class="entAllCats">До 1 часа</a><div style="display:none">');
 htmlText.innerHTML = new_txt;
 </script>
<script type="text/javascript">
var htmlText = document.getElementById('htmlText');
var txt = htmlText.innerHTML;
var new_txt = txt.replace('<a href="/publ/po_vremeni_prigotovlenija/do_1_5_chasov/126" class="entAllCats">До 1,5 часов</a>','</div><a href="/publ/po_vremeni_prigotovlenija/do_1_5_chasov/126" class="entAllCats">До 1,5 часов</a><div style="display:none">');
 htmlText.innerHTML = new_txt;
 </script>
<script type="text/javascript">
var htmlText = document.getElementById('htmlText');
var txt = htmlText.innerHTML;
var new_txt = txt.replace('<a href="/publ/po_vremeni_prigotovlenija/do_2_chasov/127" class="entAllCats">До 2 часов</a>','</div><a href="/publ/po_vremeni_prigotovlenija/do_2_chasov/127" class="entAllCats">До 2 часов</a><div style="display:none">');
 htmlText.innerHTML = new_txt;
 </script>
<script type="text/javascript">
var htmlText = document.getElementById('htmlText');
var txt = htmlText.innerHTML;
var new_txt = txt.replace('<a href="/publ/po_vremeni_prigotovlenija/bolee_2_chasov/128" class="entAllCats">Более 2 часов</a>','</div><a href="/publ/po_vremeni_prigotovlenija/bolee_2_chasov/128" class="entAllCats">Более 2 часов</a><div style="display:none">');
 htmlText.innerHTML = new_txt;
 </script>
Как видите они все однотипные отличаются только объекты замены. А можно ли как то всё это объединить в один скрипт, а то как то слишком много кода получается на странице.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2014, 07:11
Ответы с готовыми решениями:

Как можно объединить несколько скриптов в один?
Всем привет! хотел-бы узнать как можно объеденить несколько скриптов в один ? Допустим у меня есть...

Как объединить несколько Sitemap в один
MSN принимает только один файл Sitemap, a у меня их несколько. Может можно как то объединить ?

Как объединить несколько запросов в один?
подскажите пожлалуйста как можно объеденить несколько запросов в один

Как объединить несколько проектов в один?
Предположим есть несколько проектов винформ. Если сделать несколько проектов, то как объединить их...

11
супермизантроп
Эксперт JS
3860 / 2934 / 685
Регистрация: 18.04.2012
Сообщений: 8,539
26.06.2014, 07:30 2
Цитата Сообщение от bylanovandrej Посмотреть сообщение
Как видите они все однотипные отличаются только объекты замены.
нет, мы видим совершенно иное

одному и тому же объекту document.getElementById ('htmlText') 6 (шесть) раз подряд меняют значение его свойства innerHTML

подсказываю, что 5 (пять) первых операций делать не надо - их результаты на странице всё-равно не отобразятся

оставьте только 1 (одну) шестую операцию... да и метод replace () вам совершенно не нужен, можно просто записать то, что вам нужно в итоге получить

и ничего объединять не придётся
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 30
26.06.2014, 08:33  [ТС] 3
kalabuni, не знаю может я вас неправильно понял, но вы имеете ввиду что мне нужно просто записать вот это:
HTML5
1
</div><a href="/publ/po_vremeni_prigotovlenija/bolee_2_chasov/128" class="entAllCats">Более 2 часов</a><div style="display:none">
?

Добавлено через 8 минут
Если вы это имели ввиду то, вы неправы. и почему вы решили что первые 5 (пять) результатов не отобразятся, когда у меня всё сейчас нормально работает, мне просто нужно объединить скрипты.
Да, вы правы, что одному и тому же объекту document.getElementById ('htmlText') присвоены шесть разных значений. Я объясню как он работает:

Этот объект (Заключенный в <div id="htmlText"></div>) выводит массив с ссылками. Но эти ссылки могут быть совершенно различными или случайными. И вот если среди этих случайных ссылок попадается одна из тех, которые указаны в моем скрипте выше то сам скрипт заменяет простую ссылку ('<a href="/publ/po_vremeni_prigotovlenija/bolee_2_chasov/128" class="entAllCats">Более 2 часов</a>') на ссылку с добавочными элементами ('</div><a href="/publ/po_vremeni_prigotovlenija/bolee_2_chasov/128" class="entAllCats">Более 2 часов</a><div style="display:none">
').
0
супермизантроп
Эксперт JS
3860 / 2934 / 685
Регистрация: 18.04.2012
Сообщений: 8,539
26.06.2014, 08:45 4
что-то не могу уловить суть того, что у вас этот скрипт делает
объясняете вы как-то очень невнятно

попробуйте попроще - без HREFов, по крайней мере
типа, в блоке выводится ссылка <a>Текст1</a>, а надо получить ???XXX, или ???YYY, или ???ZZZ
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 30
26.06.2014, 09:21  [ТС] 5
kalabuni, Ну в общем, есть блок с несколькими ссылками, например:

<a>ссылка один</a>
<a>ссылка два</a>
<a>ссылка три</a>
<a>ссылка четыре</a>

Но эти ссылки не постоянно одни и те же, а всегда разные, проще говоря я не могу их вот так прямым текстом прописать, их выводит код: $ENTRY_CATS$.

а скрипты которые я задал в вопросе заменяю одну конкретную ссылку из этого блока на то что нужно мне. Т.е.

Допустим мне надо заменить ссылку <a>ссылка два</a> из блока на <b><a>ссылка два</a></b>. этот скрипт это и выполняет.
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
26.06.2014, 09:40 6
Загоните значения ссылок и замен в ассоциативный массив и пробегайте по циклу
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 30
26.06.2014, 10:40  [ТС] 7
mixenik, а можете на примере показать, а то я поэкспериментировал, но что то никак не получилось!
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
26.06.2014, 10:49 8
Javascript
1
2
3
4
5
6
7
8
9
10
11
var mas = new Array(
  {
      tag: '<a href="/publ/po_vremeni_prigotovlenija/na_skoruju_ruku/123" class="entAllCats">На скорую руку (до 10 минут)</a>',
      value: '</div><a href="/publ/po_vremeni_prigotovlenija/na_skoruju_ruku/123" class="entAllCats">На скорую руку (до 10 минут)</a><div style="display:none">'
  }
)
for(var i=0; i< mas.length; i++)
{
   var new_txt = txt.replace(mas[i]['tag'], mas[i]['value']);
   htmlText.innerHTML = new_txt;
}
Добавлено через 53 секунды
Примерно так
1
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 30
26.06.2014, 11:29  [ТС] 9
mixenik, нет, чего то не работает.
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
26.06.2014, 11:55 10
код в студию, сегодня чакры закрыты и экстрасенсорные способности не работают

Добавлено через 8 минут
И это пример работы с ассоциативным массивом, а не рабочий код для вашей задачи. Вам его еще нужно изрядно допилить
0
80 / 80 / 53
Регистрация: 22.03.2013
Сообщений: 270
26.06.2014, 13:25 11
Лучший ответ Сообщение было отмечено bylanovandrej как решение

Решение

bylanovandrej, вам mixenik, пытался сказать вот так:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<script>
var htmlText = document.getElementById('htmlText');
var txt = htmlText.innerHTML;
 
var mas = new Array(
  {
      tag: '<a href="/publ/po_vremeni_prigotovlenija/na_skoruju_ruku/123" class="entAllCats">На скорую руку (до 10 минут)</a>',
      value: '<div style="display:none"><a href="/publ/po_vremeni_prigotovlenija/na_skoruju_ruku/123" class="entAllCats">На скорую руку (до 10 минут)</a></div>'
  },
  {
      tag: '<a href="/publ/po_vremeni_prigotovlenija/do_30_minut/124" class="entAllCats">До 30 минут</a>',
      value: '<div style="display:none"><a href="/publ/po_vremeni_prigotovlenija/na_skoruju_ruku/123" class="entAllCats">На скорую руку (до 10 минут)</a></div>'
  },
  {
      tag: '<a href="/publ/po_vremeni_prigotovlenija/do_1_chasa/125" class="entAllCats">До 1 часа</a>',
      value: '<div style="display:none"><a href="/publ/po_vremeni_prigotovlenija/do_1_chasa/125" class="entAllCats">До 1 часа</a></div>'
  },
  {
      tag: '<a href="/publ/po_vremeni_prigotovlenija/do_1_5_chasov/126" class="entAllCats">До 1,5 часов</a>',
      value: '<div style="display:none"><a href="/publ/po_vremeni_prigotovlenija/do_1_5_chasov/126" class="entAllCats">До 1,5 часов</a></div>'
  },
  {
      tag: '<a href="/publ/po_vremeni_prigotovlenija/do_2_chasov/127" class="entAllCats">До 2 часов</a>',
      value: '<div style="display:none"><a href="/publ/po_vremeni_prigotovlenija/do_2_chasov/127" class="entAllCats">До 2 часов</a></div>'
  },
  {
      tag: '<a href="/publ/po_vremeni_prigotovlenija/bolee_2_chasov/128" class="entAllCats">Более 2 часов</a>',
      value: '<div style="display:none"><a href="/publ/po_vremeni_prigotovlenija/bolee_2_chasov/128" class="entAllCats">Более 2 часов</a></div>'
  }
 
);
 
var new_txt = txt;
 
for(var i=0; i < mas.length; i++)
{
   new_txt = new_txt.replace(mas[i]['tag'], mas[i]['value']);
};
 
htmlText.innerHTML = new_txt;
</script>
1
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 30
26.06.2014, 14:09  [ТС] 12
massEffect, спасибо огромное всё заработало. а я сначала пытался таким образом поставить:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var htmlText = document.getElementById('htmlText');
var txt = htmlText.innerHTML;
 
var mas = new Array(
  {
      tag: '<a href="/publ/po_vremeni_prigotovlenija/na_skoruju_ruku/123" class="entAllCats">На скорую руку (до 10 минут)</a>', '<a href="/publ/po_vremeni_prigotovlenija/do_30_minut/124" class="entAllCats">До 30 минут</a>', '<a href="/publ/po_vremeni_prigotovlenija/do_1_chasa/125" class="entAllCats">До 1 часа</a>' ...
      value: '</div><a href="/publ/po_vremeni_prigotovlenija/na_skoruju_ruku/123" class="entAllCats">На скорую руку (до 10 минут)</a><div style="display:none">', '</div><a href="/publ/po_vremeni_prigotovlenija/do_30_minut/124" class="entAllCats">До 30 минут</a><div style="display:none">', '</div><a href="/publ/po_vremeni_prigotovlenija/do_1_chasa/125" class="entAllCats">До 1 часа</a><div style="display:none">' ...
  }
)
for(var i=0; i< mas.length; i++)
{
   var new_txt = txt.replace(mas[i]['tag'], mas[i]['value']);
   htmlText.innerHTML = new_txt;
}
и ещё, вы наверное посчитали за ошибку что у меня коды: </div> и <div style="display:none"> поменяны местами и поставили их в правильный порядок, но этого делать было не нужно, они стояли именно так намерено. Но всё равно большое спасибо.

mixenik тоже большое спасибо за помощь!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2014, 14:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как объединить несколько файлов в один
привет подскажите плиз как объединить данные из несколько типичных файлов xls и только из первого...

Как объединить несколько проектов в один?
Как запустить форму другого проекта Вот скрин:

Как объединить несколько столбцов в один?
Нужно чтобы SQL запрос, из трёх атрибутов, сливал всё в одно. Допустим есть таблица...

Как объединить несколько INSERT в один запрос
Я с MySQL недавно... поэтому вопрос чайника. Как объединить несколько команд INSERT или REPLACE...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.