Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Изменить href через javascript (не работает)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
bestbios
Отправлено: 04 Ноября, 2013 - 22:50:35
Post Id



Гость


Покинул форум
Сообщений всего: 75
Дата рег-ции: Сент. 2013  


Помог: 1 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <script type='text/javascript'>
  6. var iCal = document.getElementById("aaa").href;
  7. var onew = iCal + '12345.html';
  8. document.getElementById("aaa").href = onew;
  9. </script>
  10. <a id="aaa" href="http://site.ru/">mylinktext</a>
  11. </body>
  12. </html>


не могу понять почему не работает замена href ссылки?
 
 Top
teddy
Отправлено: 04 Ноября, 2013 - 23:07:48
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Потому что скрипт выполняется до загрузки DOM модели

Оберните JS код в
CODE (javascript):
скопировать код в буфер обмена
  1. window.onload = function(){
  2. //тут ваш код
  3. }

(Отредактировано автором: 04 Ноября, 2013 - 23:08:30)

 
 Top
OrmaJever
Отправлено: 04 Ноября, 2013 - 23:56:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




или атрибут в body
CODE (htmlphp):
скопировать код в буфер обмена
  1. <body onload= "document.getElementById("aaa").href += '12345.html'">


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
bestbios
Отправлено: 05 Ноября, 2013 - 00:31:19
Post Id



Гость


Покинул форум
Сообщений всего: 75
Дата рег-ции: Сент. 2013  


Помог: 1 раз(а)




спасибо работает, а как заменить все ссылки на странице с id="aaa"? Сейчас заменяет только в первом теге.
 
 Top
teddy
Отправлено: 05 Ноября, 2013 - 00:42:34
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. window.onload = function(){
  2.   var links = document.getElementsByTagName('A');
  3.     for(var i = 0; i < links.length; i++){
  4.       if(links[i].className == 'aaa'){
  5.         links[i].href += '12345.html';
  6.      }
  7.    }
  8. }

Id по стандартам должен быть один, замените его на class и используйте этот код для обретения счастья Улыбка

(Отредактировано автором: 05 Ноября, 2013 - 00:59:13)

 
 Top
nerv
Отправлено: 05 Ноября, 2013 - 21:50:54
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




teddy
CODE (javascript):
скопировать код в буфер обмена
  1. if(links[i].className == 'aaa'){

а если классов несколько? )


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
teddy
Отправлено: 05 Ноября, 2013 - 23:48:48
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




nerv пишет:
а если классов несколько? )

bestbios пишет:
а как заменить все ссылки на странице с id="aaa"?

ему нужны были только aaa Улыбка если несколько, то можно использовать ||
 
 Top
DelphinPRO
Отправлено: 06 Ноября, 2013 - 07:14:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




teddy пишет:
ему нужны были только aaa если несколько, то можно использовать ||

ха-ха )
teddy, срочно изучи, что содержится в свойстве .className


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
teddy
Отправлено: 06 Ноября, 2013 - 11:11:46
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




DelphinPRO пишет:
teddy, срочно изучи, что содержится в свойстве .className

Я знаю что там находится)) просто тут похоже каждый по своему понял вопрос))

Имелось ввиду что если у ссылки А класс ааа, а у ссылки Б, класс ббб, тогда такое прокатит вполне
CODE (javascript):
скопировать код в буфер обмена
  1. if(links[i].className == 'aaa' || links[i].className == 'bbb')

(Отредактировано автором: 06 Ноября, 2013 - 11:20:31)

 
 Top
nerv
Отправлено: 06 Ноября, 2013 - 11:26:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)






-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
IllusionMH
Отправлено: 06 Ноября, 2013 - 11:32:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




teddy, <a href="/" class="this example is broken">Hahaha!</a>
 
 Top
teddy
Отправлено: 06 Ноября, 2013 - 11:33:44
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




armancho7777777
я понял-понял... )

Изначально я хотел сказать так:
CODE (html):
скопировать код в буфер обмена
  1. <a href="#" class="aaa">link</a>
  2. <a href="#" class="bbb">link</a>

т.е если нужно изменить линки у ссылок с разными классами...
 
 Top
armancho7777777 Супермодератор
Отправлено: 06 Ноября, 2013 - 11:40:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Я удалил своё сообщение, так как выше nerv уже ответил )
 
 Top
teddy
Отправлено: 06 Ноября, 2013 - 11:45:48
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Раздули то как Не понял )))
Все прозрачно и понятно Улыбка Если одна ссылка имеет несколько классов то рассматриваем список классов как одну строку при сравнении, если нужно изменить много ссылок где разные классы но по одному, тогда используем ||

И я не удивлюсь если здесь ещё кто то кинет какую нибудь ссылку или придет с примером Улыбка)

П:С ничего против не имею, просто походу в этом топе меня просто не так поняли))
 
 Top
armancho7777777 Супермодератор
Отправлено: 06 Ноября, 2013 - 11:46:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




nerv пишет:
а если классов несколько? )

CODE (javascript):
скопировать код в буфер обмена
  1. if((new RegExp('\s*' + classSearch + '\s*')).test(links[i].className)){ ...
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB