Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.09.2009, 16:06
Новичок на форуме
Отправить личное сообщение для StaREViL Посмотреть профиль Найти все сообщения от StaREViL
 
Регистрация: 03.09.2009
Сообщений: 3

Адаптация кода
Смысл: поиск и вывод всех ID. Известно что id задаются как myidX, где X какое-то число.
Код таков:
<html>

<body>
<input type="text" id="myid2" value="a">
<input type="text" id="myid3" value="b">
<input type="text" id="myid4" value="c">
<script>
while(/<.*id="(myid.)".*>/g.exec(document.body.innerHTML)){
    var x=document.getElementById(RegExp.$1);
    alert(x.id);
}
</script>

</body>

</html>


Но работает это только в FF. В IE не работает. Ошибок при этом нет.
От try..catch толку нет.
Пожскажите как это "кросснуть" под IE.
Ответить с цитированием
  #2 (permalink)  
Старый 03.09.2009, 16:54
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

IE кавычки убирает. Регулярка должна быть примерно такой /<.*id="?(myid.)"?.*>/g. А лучше вообще innerHTML в таком ключе не парсить.
Ответить с цитированием
  #3 (permalink)  
Старый 03.09.2009, 17:03
Новичок на форуме
Отправить личное сообщение для StaREViL Посмотреть профиль Найти все сообщения от StaREViL
 
Регистрация: 03.09.2009
Сообщений: 3

Сообщение от Kolyaj Посмотреть сообщение
IE кавычки убирает. Регулярка должна быть примерно такой /<.*id="?(myid.)"?.*>/g. А лучше вообще innerHTML в таком ключе не парсить.
О как. Спасибо, работает. Но показывает только последний найденый элемент...
innerHTML приходится использовать, так как по другому не знаю как получить все содержимое страницы

Последний раз редактировалось StaREViL, 03.09.2009 в 17:05.
Ответить с цитированием
  #4 (permalink)  
Старый 03.09.2009, 17:07
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

var elems = document.getElementsByTagName('input'); // если любой тег может быть, то *
for (var i = 0; i < elems.length; i++) {
    if (elems[i].id && /^myid\d+$/.test(elems[i].id))
        alert(elems[i].id);
}
Ответить с цитированием
  #5 (permalink)  
Старый 03.09.2009, 17:55
Новичок на форуме
Отправить личное сообщение для StaREViL Посмотреть профиль Найти все сообщения от StaREViL
 
Регистрация: 03.09.2009
Сообщений: 3

Сообщение от Kolyaj Посмотреть сообщение
var elems = document.getElementsByTagName('input'); // если любой тег может быть, то *
for (var i = 0; i < elems.length; i++) {
    if (elems[i].id && /^myid\d+$/.test(elems[i].id))
        alert(elems[i].id);
}
Да, спасибо еще раз. То что надо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение кода на лету ViZ Общие вопросы Javascript 7 07.11.2009 15:16
Убрать из кода вызовы FireBug Shasoft Общие вопросы Javascript 4 25.08.2009 16:46
подсветка кода в формах Шаман AJAX и COMET 5 22.08.2009 14:30
Последовательное выполнение кода avtor01 AJAX и COMET 6 29.10.2008 19:06
Подсветка кода Kolyaj Сайт Javascript.ru 6 14.10.2008 17:28