Поиск элемента без id
Хочу написать код выделяющий содержимое блока (pre, например) без привязки к id (таких блоков много).
Нагуглил конструкции с parent/next, вроде этой: http://jsfiddle.net/5NtxT/4/ Но они не работают. Для них нужна специальная библиотека? Читаю сейчас учебник, там такого нет — http://beta.javascript.ru/tutorial/s...g-elements-dom. Прошу подсказать куда копать. |
начни например отсюда http://coders.ask-ru.net/question.aspx?qid2=275
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
ню ... можно на классах
document.querySelectorAll('.button') работает начиная с ie8, если нужно ниже версии то либо писать велосипед либо jquery или любую другую либу, они все умеют шариться по классам на странице. |
Цитата:
Такое? Здесь span'ы, правда, ну не суть... <script> function highlight() { var list= document.getElementsByClassName("highlight"); for (var i=0; i!= list.length; ++i) list[i].style.background="yellow"; }; </script> Lorem <span class="highlight">ipsum dolor</span> sit <span class="highlight">amet</span>, consectetur <span class="highlight">adipisicing elit</span>, sed do <span class="highlight">eiusmod</span> <span class="highlight">tempor</span> incididunt ut labore et <span class="highlight">dolore magna</span> aliqua. <input type="button" onclick="highlight()" value="Подсветить некоторые слова"> |
Нет, такое:
![]() Правда пока я не разобрался с определением нужного блока, не то что с выделением. Допустим на одной странице есть три блока — http://jsfiddle.net/5NtxT/8/. Пусть классы, но всё равно нужно работать относительно текущего блока (this?) и его родителя (parent?). Иначе при кнопке «выделить всё» будут обработаны все три блока. Цитата:
|
Гуглить в сторону Range, textRange, selection...
|
Цитата:
Цитата:
|
У div поставить в onclick функцию выделения, которой передавать параметр this. Функция находит родителя this.parentNode и далее с помощью textRange как-то выделяешь фрагмент.
|
Спасибо, собственно сам сниппет выделяющий код уже нашёл — отпишу здесь как получится воплотить задумку.
|
Получилось что-то такое: http://jsfiddle.net/ksevelyar/5NtxT/24/
Пытаюсь избавиться от выделения самой кнопки. На «select_all(this.parent(code))» FireBug ругается — как правильно? |
про запрет выделения можно посмотреть здесь http://beta.javascript.ru/tutorial/prevent-selection
|
Да, спасибо.
Итог — http://jsfiddle.net/ksevelyar/5NtxT/25/. Буду рад узнать о «корявостях», чтобы их сгладить. |
Цитата:
|
Хм, а у меня выделяется и текст кнопки:
Цитата:
FF 3.6 |
Видимо слишком старая лиса :) В 8-ой нормально.
Почему вы ещё пользуетесь ей? |
Цитата:
|
Спасибо, пытался переделать выделение кода с помощью next, когда сделал спойлеры, но у меня не получилось. Из-за «[0]».
Почему здесь не нужен «[0]» — http://jsfiddle.net/ksevelyar/aue2T/ А здесь — http://jsfiddle.net/AbztB/ — нужен? |
Цитата:
в первом случае нужно было передать в функцию DOM элемент можно для выборки, например первого, DOM элемента использовать $(this).get(0) |
Поправил своё сообщение, я перепутал ссылки :)
То есть дело в том, что toggle это тоже jQuery и ему подходит объект jQuery? |
Цитата:
|
Потому что не все расширения поддерживаются.
Но ей много кто пользуется, уверяю. |
Часовой пояс GMT +3, время: 01:22. |