Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Поиск элемента без id (https://javascript.ru/forum/events/23152-poisk-ehlementa-bez-id.html)

ksevelyar 14.11.2011 10:16

Поиск элемента без id
 
Хочу написать код выделяющий содержимое блока (pre, например) без привязки к id (таких блоков много).

Нагуглил конструкции с parent/next, вроде этой:

http://jsfiddle.net/5NtxT/4/


Но они не работают. Для них нужна специальная библиотека?

Читаю сейчас учебник, там такого нет — http://beta.javascript.ru/tutorial/s...g-elements-dom.

Прошу подсказать куда копать.

Pavel M. 14.11.2011 10:26

начни например отсюда http://coders.ask-ru.net/question.aspx?qid2=275

ksa 14.11.2011 10:28

Цитата:

Сообщение от ksevelyar
Хочу написать код выделяющий содержимое div без привязки к id (таких блоков много).
...
Прошу подсказать куда копать.

В сторону class... :)

ksevelyar 14.11.2011 16:28

Цитата:

Сообщение от ksa (Сообщение 136369)
В сторону class... :)

Для большого количества блоков на странице всё равно потребуются указания относительно текущего элемента.

Цитата:

начни например отсюда http://coders.ask-ru.net/question.aspx?qid2=275
Спасибо. То есть без jQuery не обойтись?

trikadin 14.11.2011 19:22

Цитата:

Сообщение от ksevelyar
То есть без jQuery не обойтись?

jQuery - всего лишь библиотека для javascript'а. Соответственно, всё, что возможно сделать с помощью неё, можно сделать и с помощью js)

ksa 14.11.2011 21:22

Цитата:

Сообщение от ksevelyar
всё равно потребуются указания относительно текущего элемента

Тебе видней. :D Я твоей разметки пока не видел...

ksevelyar 14.11.2011 22:34

Цитата:

jQuery - всего лишь библиотека для javascript'а. Соответственно, всё, что возможно сделать с помощью неё, можно сделать и с помощью js)
Вот я и спрашиваю — как это сделать. Или хотя бы с чего начать делать.

Цитата:

Сообщение от ksa (Сообщение 136462)
Тебе видней. :D Я твоей разметки пока не видел...

Ссылка всё время была в первом посте топика — http://jsfiddle.net/5NtxT/2/.

Gozar 14.11.2011 22:38

ню ... можно на классах
document.querySelectorAll('.button')


работает начиная с ie8, если нужно ниже версии то либо писать велосипед либо jquery или любую другую либу, они все умеют шариться по классам на странице.

trikadin 14.11.2011 22:45

Цитата:

Сообщение от ksevelyar
Вот я и спрашиваю — как это сделать. Или хотя бы с чего начать делать.

А не очень-то понятно, что тебе нужно. Выделение, оно, знаешь ли, разным бывает.

Такое? Здесь 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="Подсветить некоторые слова">

ksevelyar 14.11.2011 23:13

Нет, такое:


Правда пока я не разобрался с определением нужного блока, не то что с выделением.

Допустим на одной странице есть три блока — http://jsfiddle.net/5NtxT/8/.

Пусть классы, но всё равно нужно работать относительно текущего блока (this?) и его родителя (parent?). Иначе при кнопке «выделить всё» будут обработаны все три блока.

Цитата:

работает начиная с ie8
Да, поддержка старых браузеров мне не нужна.


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