Как получить отдельный блок
Перейти к содержимому

Как получить отдельный блок

  • автор:

Можно ли получить определенные элементы с блока по классу в JS?

Допустим в одном блоке есть несколько блоков с классом «q», а так же есть есть второй блок, в котором тоже есть блоки с классом «q». Можно ли как-то получить все элементы в с классом «q» но только с первого блока.

 
1
2
3
4
5
6
7
8

Можно ли это как то сделать? или это невозможно? Я начинающий программист, много не знаю, заранее спасибо за ответ. document.querySelectorAll(.random_class) не подойдет, этот класс может изменяться.

Отслеживать
задан 26 янв 2022 в 11:56
user480491 user480491
103 6 6 бронзовых знаков
Можно у них родительский класс различен
26 янв 2022 в 11:59

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Берём все элементы, определяем их родителя и составляем «список» родителей, после этого можем от списка родителей обращаться к его дочерним элементам.

let elem = document.querySelectorAll('.q'), // Все элементы с неизвестным родителем parents = []; // Список родителей [. elem].map(e => < // Проходим по всем элементам let firstClass = e.parentElement; // Получаем родителя if(!parents.includes(firstClass)) // Если родителя нет в списке.. parents.push(firstClass); // .. то добавляем его >); console.info(parents); // Видим список всех родителей let elems = parents[0].querySelectorAll('.q'); // Возьмём элементы первого родителя из списка [. elems].map(e => e.style.color = 'red'); // Установим этим элементам красный цвет текста.
 
1
2
3
4
5
6
7
8

Вы сказали, что в зависимости от количества блоков — класс изменяется и привели пример random_class и random_class_1 , если random_class присутствует всегда, добавляя только число, вы можете обращаться к элементам .q через document.querySelectorAll(‘[class^=»random_class»] .q’) , таким образом используя что-то типо регулярки, при котором будут браться элементы у которых родитель будет иметь атрибут class начинающийся с random_class .

Руководство по команде setblock

Setblock (от англ. set — «установить», block — «блок») — команда, которая размещает блок.

  • 1 Варианты команды
  • 2 Название блока
  • 3 Состояния блоков
  • 4 Настройка размещения блока
  • 5 NBT-данные

Варианты команды [ ]

  • Обычная команда:
  • Команда с указанием состояний блока:
  • Команда с указанием NBT данных:
  • Команда с указанием состояний блока и NBT данных:

При указании NBT данных обязательно нужно заключать nbt и значение в кавычки, если они состоят из нескольких слов.

Название блока [ ]

Название блока записывается строчными латинскими буквами. Если в названии несколько слов, то они разделяются знаком подчеркивания » _ «.

Названия блоков можно предварять пространством имён minecraft: , а можно и нет. Для блоков из модификации пространством имён, обычно, является название модификации.

  • minecraft:sandstone — песчаник;
  • minecraft:stone_slab — каменная плита;
  • minecraft:stone_pressure_plate — каменная нажимная пластина;
  • white_wool — белая шерсть.

Состояния блоков [ ]

Основная статья: Состояния блоков

Состояния блока определяют некоторые параметры блока.

  • Компаратор направлен в одну из 4 сторон ( facing=north|south|east|west ).
  • Повторитель имеет задержку ( delay=1|2|3|4 ) и может быть активирован ( powered=true ) или неактивирован ( powered=false ).
  • Ступени имеет различную форму ( shape=inner_left|inner_right|outer_left|outer_right|straight ).

Несколько возможных значений разделены вертикальной чертой | .

  • /setblock ~ ~ ~1 chest[facing=north] — установит перед игроком, который смотрит на юг, сундук, который направлен на север.
  • /setblock ~ ~ ~1 repeater[delay=2, powered=true] — установит перед игроком активированный повторитель с задержкой 2.

Настройка размещения блока [ ]

  • replace — заменяет старый блок новым.
  • destroy — подобен replace , но выбрасывает старый блок и его содержимое, как если бы он был добыт инструментом без чар.
  • keep — заменяет только воздух указанным блоком.

По умолчанию replace .

Условие: Игрок стоит на открытом воздухе

  • /setblock ~ ~2 ~ stone keep — установит камень над игроком.
  • /setblock ~ ~2 ~ sandstone destroy — установит песчаник над игроком.
  • /setblock ~ ~2 ~ yellow_wool replace — установит жёлтую шерсть над игроком.

Условие: Игрок стоит в узком каменном коридоре высотой в два блока

  • /setblock ~ ~2 ~ stone keep — выведет сообщение о неудачном размещении блока.
  • /setblock ~ ~2 ~ sandstone destroy — установит над игроком песчаник, заменяя камень; выпадет булыжник.
  • /setblock ~ ~2 ~ red_wool replace — установит над игроком красную шерсть, заменяя камень.

NBT-данные [ ]

Позволяет указать содержимое блока (если оно у него может быть). Все параметры опциональны.

    • CustomName — название блока (отображается при открытии интерфейса блока). Для командного блока имя будет заменено с использованием @.
    • Lock — если значение не пустое, то, чтобы открыть интерфейс блока нужно взять определённый предмет с именем, указанным в этом параметре
    • Levels — число уровней доступных в пирамиде
    • Primary — первый главный эффект. ID см. в статье Эффекты. 0 означает нет эффекта
    • Secondary — второй главный эффект. ID см. в статье Эффекты. 0 означает нет эффекта
    • Items — число объектов в стойке. Всего есть 4 слота от 0 до 3. ID смотри в статье Структура объектов
    • BrewTime — число тактов зелий
    • Items — список объектов в сундуке. Всего есть 27 слотов от 0 до 26. Первый слот находится слева сверху. ID см. в Структура объектов (англ.)
    • OutputSignal — определяет направление выходного сигнала. Используется потому, что сам блок использует четыре бита метаданных: вращение, состояние питания и состояние режима вычитания. Также, компаратор может содержать определённое количество энергии даже в цепях без красной пыли.
    • Command — команда, помещённая в командный блок
    • SuccessCount — количество успешных запусков команд. Счётчик обновляется только если командный блок был запущен красной пылью
    • LastOutput — последняя выходная запись блока. Записывается всегда, даже при установке аргумента commandBlockOutput у команды gamerule в значение ложь (0). Также можно посмотреть, если открыть интерфейс командного блока
    • TrackOutput — неизвестно, принимает значения 0/1 (ложь/правда)
    • /setblock ~ ~2 ~ command_block — установит над игроком командный блок с командой say @a Привет .
    • /setblock ~ ~2 ~ chest]> — установит над игроком сундук, в первом слоте которого лежит алмазный меч.
    • /setblock ~1 ~ ~1 chest[facing=west]]> — установит около игрока сундук, который направлен на запад и содержит алмазный меч.

    Как отделить отдельный блок div со всем содержимым в нём html коде от всего кода, в котором этот div находится?

    Здравствуйте. Есть много файлов html (70 штук) и в нём html код, такова плана: https://pastebin.com/LVSEx8em . Нужно автоматически отделить блок , который начинается по ссылке с 27 строки и заканчивается на 129 строке, от другого кода, то есть чтобы в файлах только остался блок . Как так сделать?

    • Вопрос задан более трёх лет назад
    • 231 просмотр

    Комментировать
    Решения вопроса 0
    Ответы на вопрос 2

    Expany

    $this->get(‘skill’);
    Погугить поиск и замену текста в файлах?
    Буквально первый результат: решение для Total Commander
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 2 Комментировать

    Если позиции этих блоков в файлах не меняются, то можно прогнать утилитой `sed`:
    1. Скачать утилиту: https://github.com/mbuilov/sed-windows
    2. Вставить в `cmd` файл скрипт: https://pastebin.com/5wA16DTB
    3. В блоке SETTINGS указать начало и конец блока и путь до скачанной утилиты
    4. Перетащить папку с нужными файлами на полученный `cmd`
    5. В папке `out` появятся обрезанные html-ки

    Ну, или любым другим способом выполнить команду над каждым файлом, подставив нужные номера строк:
    sed -n «27,129p» in.html > out.html

    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
    Ваш ответ на вопрос

    Войдите, чтобы написать ответ

    javascript

    • JavaScript
    • +1 ещё

    Как сделать такой скролл?

    • 1 подписчик
    • 4 часа назад
    • 45 просмотров

    Как получить отдельный блок страницы через Ajax (Jquery)?

    Нужно на стороне сервера в случае ajax запроса выдавать не всю страницу, а нужную часть.
    В большинстве фреймворков есть проверка наподобие is_ajax_request .
    если не использовать фреймворк, то нужно проверять запрос на наличие хэдера HTTP_X_REQUESTED_WITH

    Ответ написан более трёх лет назад

    Комментировать

    Нравится 1 Комментировать

    Ваш ответ на вопрос

    Войдите, чтобы написать ответ

    javascript

    • JavaScript
    • +1 ещё

    Как отключить скролл страницы в области Яндекс Карты?

    • 1 подписчик
    • 4 часа назад
    • 31 просмотр

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *