Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как изменить ID у элемента? (https://javascript.ru/forum/misc/42036-kak-izmenit-id-u-ehlementa.html)

Блондинка 19.03.2019 14:13

А как создать массив, скопировав из контейнера?

laimas 19.03.2019 14:34

Просто объявляем массив необходимых значений, зачем вам их копировать из контейнера, он что динамически будет изменяться или что?

<html>
<head>
<meta charset="utf-8">
<style>
.radius {
    background: #f0f0f0; 
    border: 1px solid #999; 
    width: 420px; 
    padding: 15px; 
    margin-bottom: 10px; 
    border-radius: 50px 0 0 50px;
}
</style>
</head>
<body>
<div id="a" class="radius"><span id="a1">border-radius: 50px 0 0 50px;</span></div>
<button>Next</button>
<script>
var radius = ['50px 0 0 50px', '40px 10px', '13em/3em', '13em 0.5em/1em 0.5em', '8px'], step = 0;
document.querySelector('button').addEventListener('click', function() {
    step = ++step % 5;
    document.querySelector('#a').style.borderRadius = radius[step];
    document.querySelector('#a1').textContent = 'border-radius: ' + radius[step];
})
</script>
</body>
</html>

Блондинка 19.03.2019 14:57

laimas,
просто речь идет не про одну страницу, а про много страниц, и на каждой свой контейнер с кодом, и свой див-демонстратор.
можно див обернуть в button?

Блондинка 19.03.2019 15:06

вот приблизительный список страниц

laimas 19.03.2019 15:08

Цитата:

Сообщение от Блондинка
просто речь идет не про одну страницу, а про много страниц

Ну так готовьте код на основе таких данных, и которые отдавайте клиенту, а не выдирайте их из текста, это и накладно, и не разумно. Когда либо приходилось сталкиваться с шаблонизаторами? Вот так и у вас должно работать. Например, в базе описаны данные для N страниц - скажем так "Название урока", "Тема урока" и данные для него. В данном случае пять записей со значениями - '50px 0 0 50px', '40px 10px', '13em/3em', '13em 0.5em/1em 0.5em', '8px'.

Запрашивает пользователь этот урок, подключается шаблон этого урока, в который передаются данные из базы для него, где параметры радиуса, это массив. Шаблонизатор помещает эти данные в определенном месте шаблона, а содержание контейнера code выводит в цикле - повторяя ваш div и span, в которые подставляет значения радиусов.

Этот же шаблон имеет и CSS необходимый, и JS код обслуживающий данный урок, в котором var radius данные выводятся как json.

Так это делается, если вы хотите автоматизма.

Блондинка 19.03.2019 15:33

А нельзя автоматизировать только див-демонстратор, чтобы скрипт просто копировать из контейнера и вставлялась в див?

laimas 19.03.2019 15:47

Цитата:

Сообщение от Блондинка
чтобы скрипт просто копировать из контейнера и вставлялась в див?

Зачем и что он должен копировать? Если не хотите хоть в чем то автоматизировать процесс создания своих страниц, значит пишите код каждой страницы от руки (статические страницы), в которых размещайте сразу и JS код необходимый, и необходимые для него данные.

Блондинка 19.03.2019 15:56

laimas,
наверное не правильно сформулировала вопрос,
можно ли сделать чтобы скрипт автоматически генерировал массив исходя из содержимого контейнера

laimas 19.03.2019 16:06

А что будут содержать ваши контейнеры и есть ли гарантия того, что контекст копирования можно однозначно определить на любой из ваших страниц, и тем более, что скопированные данные гарантированно подойдут js сценарию на любой из страниц?

Если на странице А, это будет изменение радиуса у div, а на другой это пример о градиентной заливке, то может ли один и то же скрипт найти нужное, если ему не указать конкретно что искать? А если требуется указание, то зачем нагружать сценарий ненужной работой, когда это все сразу можно задать для сценария как данные?

Трудно понимание для вас "динамические страницы", ну так пишите статические, в них все сразу и определяйте, текст поясняющий код пусть так и будет текстом, а CSS, JS, это реальное, что и будет исполняться, без всякого копирования. Ну посмотрите к примеру описание документаций каких либо API, библиотек, там ведь тоже описаны методы, которые могут содержать и html разметку, но никому в голову не придет копировать это описание для реального выполнения. Это все отдельно - реальным кодом.

Блондинка 19.03.2019 16:48

Цитата:

Сообщение от laimas
Если на странице А, это будет изменение радиуса у div, а на другой это пример о градиентной заливке, то может ли один и то же скрипт найти нужное, если ему не указать конкретно что искать?

так я вручную и буду указывать, и на каждой странице свой скрипт будет, только какую-то часть этой ручной работы хочу переложить на скрипт, а именно создание массива, тоесть прошу дать не скрипт универсальный для всех страниц, а шаблон скрипта который по максимуму сможет автоматизировать мою ручную работу


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