Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передать класс (https://javascript.ru/forum/misc/86033-peredat-klass.html)

Uthvfy62 06.08.2024 05:23

Передать класс
 
Как при клике по блоку передать классы этого блока другому блоку? Можно ли на jQuery переопределить классы? В js просто, className, а на Query такого нет. Спасибо.

voraa 06.08.2024 09:10

Для работы с классами лучше использовать classList. Можно работать с отдельными классами - добавлять, удалять, проверять...

https://learn.javascript.ru/styles-a...me-i-classlist
https://developer.mozilla.org/ru/doc...ment/classList

В jquery есть аналогичные методы
https://api.jquery.com/category/mani...ass-attribute/

Вместо className можно обращаться к атрибуту class .attr('class')

ksa 06.08.2024 10:14

Цитата:

Сообщение от Uthvfy62
В js просто, className, а на Query такого нет.

Зачем специально упираться с "именно на jQuery"? :)
Гораздо эффективнее брать более удобные варианты решения задач...

Uthvfy62 11.08.2024 08:00

я считаю что в js можно манипулировать только одним элементом. Если у меня два блока с одинаковым классом то js выберет 1 а второй проигнорирует. Я сколько раз пробывал указать querySelectorAll. и ничего не выходит, всё равно в приоритете только первый элемент. Если из ul я выберу все li, то изменится только первый li. Сколько раз пробывал. С тех пор отказался от js, и полностью перешёл на jquery. Да, в js это делается элементарно, className, и все дела. А jquery наоборот, выбирает все элементы, но переопределить классы проблематично. Для меня. У других наверно нет, но у меня так. И вопрос стоит не переименовании классов, а в назначении классов другому блоку. Надо при клике по блоку к примеру с классом block1 назначить этот класс другому блоку. Кликнул по block1 и у целевого блока тоже стал block1.

ksa 12.08.2024 10:18

Цитата:

Сообщение от Uthvfy62
Я сколько раз пробывал указать querySelectorAll. и ничего не выходит, всё равно в приоритете только первый элемент. Если из ul я выберу все li, то изменится только первый li.

Хоть бы показал как ты это "пробовал"...

<style>
.on {
	color: green;
}
</style>
<ul>
	<li>Элемент 1</li>
	<li>Элемент 2</li>
	<li>Элемент 3</li>
</ul>

<script>
document.querySelectorAll('li').forEach(o => o.classList.add('on'))
</script>

Стиль применится ко всем элементам. Никаких приоритетов к "первому элементу" нет.

Uthvfy62 12.08.2024 22:40

а я просто брал document.querySelectorAll и добавлял classList.add. Спасибо, теперь буду знать как. А то я вообще разочаровался в js после тшетных попыток.

Uthvfy62 12.08.2024 23:04

Скажите, интересует такой вопрос, как можно удалить слово или фразу из текста. Например из фразы "Быстрый ответ" удалить слово Быстрый. С учётом того что этого слова много в тексте.

Uthvfy62 12.08.2024 23:07

Так всё таки, как при клике по блоку передать классы этого блока другому блоку?

Nexus 13.08.2024 06:02

Цитата:

Сообщение от Uthvfy62
Так всё таки, как при клике по блоку передать классы этого блока другому блоку?

<div id="first" class="class1 class2 class3">first</div>
<div id="second" class="class4 class5 class6">second</div>

<script>
first.addEventListener('click', () => {
	second.classList.add(...first.classList);
});
</script>

ksa 13.08.2024 09:28

Цитата:

Сообщение от Uthvfy62
А то я вообще разочаровался в js после тшетных попыток.

Так можно в любом ЯП разочароваться... :D

Цитата:

Сообщение от Uthvfy62
как можно удалить слово или фразу из текста. Например из фразы "Быстрый ответ" удалить слово Быстрый. С учётом того что этого слова много в тексте.

Я же показывал как такое сделать...
https://javascript.ru/forum/misc/860...tml#post555959


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