![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
Приветствую!
Задача сделать кликабельными ссылки внутри тега td класса "code".
Не могу правильно сформулировать последнюю строку, помеченную как отсебятина. :( Помогите пожалуйста. Спасибо! |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
||||
|
||||
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
||||
|
||||
| Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 3 Всего: 15 |
nule, Amphiluke тебе намекает, что надо быть внимательнее, так как в очередной раз ты допускаешь ошибки при написании методов.
.replaCe |
|||
|
||||
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
В этот раз я понял с первого раза |
|||
|
||||
| Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 3 Всего: 15 |
||||
|
||||
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
Это я подглядел вот в этой теме: http://forum.vingrad.ru/topic-286021.html
Я так понимаю, при помощи innerHTML надо представить содержимое контейнеров в виде html-кода и заменить в нем найденные ранее ссылки на модифицированные, с href= |
|||
|
||||
| Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 3 Всего: 15 |
даже не знаю как объяснить, но getElementsByTagName("td") выдаст массив всех тегов td которые существуют на странице, то есть если две таблицы и в каждой 20 ячеек, то этот метод найдёт 40 ячеек.
вот и получается: массив(в котором все td).innerHTML= и ты разом всем ячейкам пытаешься поменять значение. Такое не прокатит. прошу прощение за кривое объяснение) Добавлено @ 20:45
Amphiluke выбрал первый элемент массива - ....("body")[0].inn...., ты же пытался работать сразу со всеми элементами Это сообщение отредактировал(а) Evghenusi - 5.11.2011, 20:46 |
|||
|
||||
| Evghenusi |
|
||||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 3 Всего: 15 |
надеюсь правильно понял автора, и код получился не слишком кривой.
готовый пример, что бы скопировать и протестить)
Добавлено через 1 минуту и 39 секунд
ну если идёт |
||||
|
|||||
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
Да, но в этом случае текстовые ссылки не будут отделены от нормальных ссылок тегами. Во всем документе регулярные выражения найдут и кликабельные и некликабельные ссылки. Как их различить? |
|||
|
||||
| Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 3 Всего: 15 |
if(!td[i].getElementsByTagName('a').length)
смотри код, всё есть Добавлено через 1 минуту и 5 секунд скопировать код готовой страницы и протестить не вариант? |
|||
|
||||
| Evghenusi |
|
||||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 3 Всего: 15 |
предлагаю:
|
||||
|
|||||
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
Проанализировав возможные варианты тегов в исходном документе, составил удовлетворительную комбинацию на основе предложенного Evghenusi варианта. За что ему отдельное спасибо!
Также пришлось ввести регулярное выражение. Но опять не всё гладко.
Не работает '<a href="$1">$1</a>'. Замена происходит буквально, т.е. вместо текста ссылки получаем кликабельную $1, которая ссылается на $1. Почему так? |
|||
|
||||
| $дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
С одинарными кавычками всегда так
|
|||
|
||||
| Evghenusi |
|
||||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 3 Всего: 15 |
можно подробнее? я суть не уловил
nule, чью регулярку использовал? снова наблюдаю:
ладно, не буду томить, предлагаю такое решение:
Это сообщение отредактировал(а) Evghenusi - 6.11.2011, 19:29 |
||||
|
|||||
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
Не только запускал, но и изучал.
Добавил регулярку, т.к. может присутствовать произвольный текст. И вот почти конечный вариант:
Работает, как мне надо, за исключением всё того же момента. Ссылки заменяет не на ссылки, а на $1. Кавчки я разные пробовал в разных комбинациях. $дмитрий, не могли бы Вы уточнить ваш ответ на этот вопрос? |
|||
|
||||
| $дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
nule, чтобы заработало замени регулярку
Про кавычку - недосып Это сообщение отредактировал(а) $дмитрий - 8.11.2011, 07:28 |
|||
|
||||
| nule |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
Спасибо, понял. Запоминающие скобки. Но теперь новая напасть.
Вот так выводит нормально (без http, разумеется). Если же вять в скобки всё выражение то сценарий заклинит, а на экран вывалится
Если же в скобки взять только https?(\:\/\/w*\.* то тоже всё нормально. Это можно как-то объяснить? |
||||||||
|
|||||||||
| $дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
nule, экранируй двоеточие
|
|||
|
||||
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
Вы имеете ввиду двоеточие в этом выражении [\w\d:#@%/;$()~_?\+-=\\\.&]? \: не помогает. |
|||
|
||||
| $дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
|
|||
|
||||
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
Не помогает. Тоже самое.
|
|||
|
||||
| $дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
Запости итоговый код
|
|||
|
||||
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
Вот всё что есть. |
|||
|
||||
| Lols |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 21.10.2011 Репутация: нет Всего: нет |
У меня какая-то ерунда получается при тестировании...
|
|||
|
||||
| $дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 5 Всего: 45 |
Лови
|
|||
|
||||
| nule |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 3.11.2011 Репутация: нет Всего: нет |
Огромное спасибо! Всё работает. While действительно был лишним. Это был пережиток предыдущих так сказать версий.
Кстати, без этого цикла ухищрения $1$2 уже не нужны. Прекрасно работает одна пара запоминающих скобок. Добавлено через 7 минут и 31 секунду
Так там ерунда и получалась |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |