Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Подсветка цифр на странице (https://javascript.ru/forum/jquery/7789-podsvetka-cifr-na-stranice.html)

qwerty 19.02.2010 14:57

Подсветка цифр на странице
 
Подскажите пожалуйста, есть ли возможность средствами jQuery выделить на странице все видимые цифры цветом ?
Не испортив при этом, естественно, остальной html-код, в дебрях которого цифры тоже встречаются.

В plain-тексте повыделять цифры дело не хитрое
text=$("body").html().replace(/([0-9]+)/g, '<font color="red">$1</font>');
$("body").html(text);
а вот как на насыщенной html-странице - ума не приложу :(

sysya 19.02.2010 15:44

может этим методом $("body").text() :)
А насыщенная страница это что значит?

micscr 19.02.2010 15:52

Меня больше интересует что значит "Не испортив при этом, естественно, остальной html-код".
Если в теге данные(листья) - только цифры, то да можно и не испортить.
Но если и буквы и цифры то цифры придется обернуть в какой-то другой тег(span) которому уже и назначить стиль.

qwerty 19.02.2010 16:03

Я имел ввиду, что на странице много разных элементов, html-код которых может содержать цифры: картинки с их размерами, ссылки с URL'ами с цифрами, всякие ID и CLASS'ы, содержащие цифры в именах... и т.д.

Если по этому пройтись кодом, который я привел - всё это попортится.
Если использовать $("body").text() - вобще html исчезнет.
А хотелось бы, чтобы изменения затронули только текстовую составляющую, отображаемую на странице. Без ущерба для html-кода.

sysya 19.02.2010 16:07

я имел ввиду чтоб метод text() использовать как micscr говорит

micscr 19.02.2010 16:13

я регулярки в js сильно не смотрел, но там наверное есть такое чтобы искало те цифры которые не внутри пары <>?
Если что, то и вручную распарсить строку не сильно сложно.

micscr 19.02.2010 16:19

Цитата:

Сообщение от sysya (Сообщение 45440)
я имел ввиду чтоб метод text() использовать как micscr говорит

это не будет так просто как вариант ТС т.к. еще надо учитывать те текстовые ноды(братья и сестеры узлам) которые не обернуты в тег сами.
<div>
вот такие !!!
<span>dddd</span>
<span>ssss</span>
</div>

sysya 19.02.2010 16:26

Мне кажется любыми средствами яваскрипта браузер обакакается от нагрузки при обработке большой страницы, а если фильтровать ещё отдельные теги вырубится вабше:) ну может и не вырубится...

qwerty 19.02.2010 16:36

Я, честно говоря, очень расчитывал, что можно как-то просто указать в jQuery: мол сделай выборку всего, что не является тегом :)

Сейчас думаю, что зря расчитывал, ибо блоки текста не обернутые получаются :(

OK, значит будем парсить.
Спасибо.

micscr 19.02.2010 17:04

Цитата:

Сообщение от qwerty (Сообщение 45448)
Сейчас думаю, что зря расчитывал, ибо блоки текста не обернутые получаются

Их в принципе можно обернуть предварительно. Что-то типа:
$('*').contents().not('[nodeType=1],:only-child').wrap('<b>');

<b> - для примера.


Часовой пояс GMT +3, время: 09:27.