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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения, бага в эксплорре 
V
    Опции темы
Friackazoid
  Дата 23.11.2006, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Весб день седня ссума схожу.
есть такой HTML код
Код

<span class="subtitle"><label for="simgr_2">маленькая</label></span><br/>
<input type="file" name="simgr_2" id="simgr_2" size="20" style="width: 95%;"/><br/>
<span class="comment">120×60 пикселей</span>

Это небольшая часть, чтоб понять в чем суть.

Есть функция которая, с помощью apendChild добавляет в динамически созданный див еще такой код. Но нужно все id и for заменить на id и for порядкового номера то есть id="simgr_3" for="simgr_3".
Для этого я беру innerHTML нужного DIV'а и использую регулярное выражение

Код

var NewHtml=html.replace(/(\_\d+)/gi,'_'+ImagesCount);


и в Опере все работает замечательно, но експлорер съедает кавычку, то есть получаю id=simgr_3 for=simgr_3
пробовала выражение
Код

var NewHtml=html.replace(/(\_\d+\")/gi,'_'+ImagesCount+'"');

но получаеться еще хуже, потому что тогда не зяменяеться число
сколько не искала подобных проблем больше ни у кого не нашла smile 

Если кто знает что за ерунда то подскажите, пожалуста.


--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог
PM MAIL WWW ICQ GTalk   Вверх
SelenIT
Дата 23.11.2006, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Friackazoid, избавьтесь от иллюзий, что innerHTML уже добавленного в DOM элемента совпадает с кодом, который Вы ввели лично - браузер гененирует его заново в соответствии со своими "привычками", так что изменение регистра, перестановка атрибутов местами, лишние пробелы и т.п. при этом - вполне обычное дело.

Лучше доставайте <img> из нужного дива с помощью
Код

var newimg = newdiv.getElementsByTagName('img')[0];
и спокойно меняйте ему нужные свойства:
Код

newimg.name = newimg.id = newimg.id.split('_')[0] + '_'+ImagesCount;



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Avb
Дата 23.11.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



var element = document.createElement(...);
var number=3;
element.setAttribute('id', 'simgr_'+number); или element.id = 'simgr_'+number;
anotherElement.appendChild(element);
PM MAIL   Вверх
Friackazoid
Дата 23.11.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



SelenIT, 

в том-то и дело что нужно поменять не только id  и name у img но и свойство for у label'a а к нему подобного боступа нет smile 
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог
PM MAIL WWW ICQ GTalk   Вверх
SelenIT
Дата 23.11.2006, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Friackazoid, вот так есть доступ:
Код

нечто.getElementsByTagName('label')[0].getAttribute('for'));

ой, поторопился... в IE действительно нет, сорри...

Это сообщение отредактировал(а) SelenIT - 23.11.2006, 14:12


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
SelenIT
Дата 23.11.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Friackazoid, я разобрался - искомое свойство метки называется htmlFor. Все-таки полезная иногда штука MSDN...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Zeroglif
Дата 23.11.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



IE может обойтись и без кавычек вокруг id, всё равно их удалит. Если очень хочется всё-таки поставить:

Код

html.replace(/(simgr_)\d+/gi,'"$1'+ImagesCount+'"');

PM MAIL WWW   Вверх
Friackazoid
Дата 23.11.2006, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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


 




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


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

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