Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2013, 01:23
Интересующийся
Отправить личное сообщение для zork0 Посмотреть профиль Найти все сообщения от zork0
 
Регистрация: 12.12.2012
Сообщений: 27

Просто дописать в style=""
Нужно, что бы активный пункт меню выделялся фоном. Вот изначальный скрипт:
function act(){
  var tags=document.getElementsByTagName("li");
  for(i in tags){
    if(tags[i].className=="act"){
        if(document.location.href==tags[i].firstChild.href){
            tags[i].className += "active";
        }
    }
  }
}

Но он не работает, так как клас active низкий по приоритету за некотрые базовые. Выход: последнюю строчку заменить. Что бы в style="" джава дописивала оределенные значение. А пока учить времени нет. Помогите, есле не сложно.
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2013, 05:40
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

А если написать
tags[i].className += " active";

то тоже не работает? А то у вас получается класс "actactive".
Можно ещё, например
tags[i].style.backgroundColor="gray";

Сообщение от zork0
джава
Не Джава, а Джаваскрипт!

Последний раз редактировалось oneguy, 08.06.2013 в 05:43.
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2013, 11:12
Интересующийся
Отправить личное сообщение для zork0 Посмотреть профиль Найти все сообщения от zork0
 
Регистрация: 12.12.2012
Сообщений: 27

Сообщение от oneguy Посмотреть сообщение
А если написать
tags[i].className += " active";

то тоже не работает? А то у вас получается класс "actactive".
Можно ещё, например
tags[i].style.backgroundColor="gray";


Не Джава, а Джаваскрипт!
Да, это то что нужно. Но не работает почему то(
var tags=document.getElementsByTagName("a");
  for(i in tags){
    if(tags[i].className=="act"){
        if(document.location.href==tags[i].firstChild.href){
            tags[i].style.backgroundColor="gray";
        }
    }
  }
}
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2013, 11:20
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

1
var tags=document.getElementsByTagName("a");
Сообщение от zork0
if(document.location.href==tags[i].firstChild.href){
какой же у ссылки firstChild с href?
if(document.location.href==tags[i].href)

а вообще определитесь , у чего должен быть класс act у а или у li?

2
Сообщение от zork0
for(i in tags){
ну это вообще не по феншуй? перебирать фор ин массивы или элементы подобные массивам
for (var i=tags.length; i--;){

Последний раз редактировалось dmitriymar, 08.06.2013 в 11:23.
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2013, 11:59
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от dmitriymar
ну это вообще не по феншуй? перебирать фор ин массивы или элементы подобные массивам
Феншуй тут не причем. Дело в том что length и item тоже попадают в перечисление.
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2013, 12:03
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от danik.js
Дело в том что length и item тоже попадают в перечисление.
это и есть феншуй . правильнее сказать- могут попасть в зависимости от браузера.

Последний раз редактировалось dmitriymar, 08.06.2013 в 12:05.
Ответить с цитированием
  #7 (permalink)  
Старый 08.06.2013, 12:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

item попадает во всех. length не попадает только в IE. В опере почему-то попадает еще undefined. В файрфоксе попадает еще namedItem, iterator и все id'шники, имеющиеся в коллекции.
Ответить с цитированием
  #8 (permalink)  
Старый 08.06.2013, 12:45
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

в 5м перечисляет только перечислимые. поэтому, там где 5 полностью реализован для этого , перечислит только ссылки-но когда это будет... другой момент как браузеры их сейчас помечают .
а вот сейчас ,активно уже, "деятели" проходят по массивам и объектам подобным им ....
Ответить с цитированием
  #9 (permalink)  
Старый 08.06.2013, 17:44
Интересующийся
Отправить личное сообщение для zork0 Посмотреть профиль Найти все сообщения от zork0
 
Регистрация: 12.12.2012
Сообщений: 27

Сообщение от dmitriymar Посмотреть сообщение
1
var tags=document.getElementsByTagName("a");

какой же у ссылки firstChild с href?
if(document.location.href==tags[i].href)

а вообще определитесь , у чего должен быть класс act у а или у li?

2 ну это вообще не по феншуй? перебирать фор ин массивы или элементы подобные массивам
for (var i=tags.length; i--;){
Спасибо за опширный ответ. Кстати, скрипт работал и без укзааного firstChild. Правда, я посмотрел меню небольшое статичное, можно обойтись и без скрипта)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как дописать значение атрибута value, а не переписать Dimaz jQuery 2 12.12.2012 21:12
дописать строку в документ YemSalat Общие вопросы Javascript 5 02.04.2011 17:54
таймер обратного отсчёта , помогите дописать ДимаЯл Элементы интерфейса 5 08.01.2011 10:20
Дописать JS и PHP валидатор для телефона 3-3-4 conductor3 Работа 1 11.05.2010 00:01
Дописать стили после получения ответа nemo AJAX и COMET 1 21.11.2009 20:46