Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение надписи на Web-странице 
:(
    Опции темы
mrbadge
Дата 6.3.2011, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 6.3.2011

Репутация: нет
Всего: нет



На Web-странице такой код: 


Код

<div class="line yrov0" style="cursor: default">
 <div class="line_nadpis">TEXT</div>
 <div>
   <div class="line_l fl_l" style="width: 184px;"></div>
   <div class="line_r fl_r" style="width: 16px;"></div>
 </div>
</div>



требуется изменить:
"line yrov0" → "line yrov1"
TEXT → New_text

Делаю так:

Код

javascript:
var o=document.getElementsByTagName('div'); 
var i;
for (i=0; i<o.length; i++) {
 switch (o[i].className) {
    case 'yrov0':
   o[i].className='yrov1'
   break
    case 'line_nadpis':
   o[i].innerHTML='New_text'
   break
 }
}



Однако после выполнения весь код страницы изменяется на новый текст (белая страница и надпись в левом верхнем углу). Изменение класса вообще не работает, а если писать два класса подряд (как в диве), то точно такая же ситуация, как и с тестом (что очень странно, ведь меняется класс, а не значение дива).

PM MAIL   Вверх
ksnk
Дата 6.3.2011, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Для <div class="line yrov0" ... функция className вернет значение line yrov0.

На jQuery подобное написать значительно проще.
Код

$('yrov0').removeClass('yrov0').addClass('yrov1');

На чистом JS придется помучится на несколько строчек больше...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
mrbadge
Дата 6.3.2011, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 6.3.2011

Репутация: нет
Всего: нет



Спасибо. Сам я пишу на ObjPascal'e, поэтому в тонкостях javascript'a разбираюсь плохо. Если не сложно, то хотелось бы увидеть рабочий код на JS. Заранее спасибо
PM MAIL   Вверх
ksnk
Дата 6.3.2011, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(ksnk @  6.3.2011,  11:27 Найти цитируемый пост)
На jQuery 

это значит - с использованием библиотеки jquery.

иначе придется городить навороты. Вроде такого
Код

    function Class(cl){
            var reg; (reg=new RegExp("(^|\\b)"+cl+"(\\b|$)")).compile;
            return {
                add:function(x){
                    var r=this.have(x);
                    if (r==false)
                        x.className=cl
                    else if(!r)
                        x.className+=(x.className&&' '||'')+cl;
                },
                have:function(x){
                    if (typeof x.className =="string")
                        return (x.className.match(reg))
                    else
                        return false;
                },
                remove:function(x){
                    if (typeof x.className =="string") {
                        if (x.className.match(reg))
                            x.className=x.className.replace(reg,'')
                    }
                }
            }
        }

var yrov0= new Class('yrov0')
     , yrov1= new Class('yrov1');
var o=document.getElementsByTagName('div'); 
var i;
for (i=0; i<o.length; i++) {
   if(yrov0.have(o[j])){
      yrov0.remove(o[j]);
      yrov1.add(o[j]);
   }
}



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2267 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.