Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 20.03.2017
Сообщений: 11
1

Как изменить код, чтобы добавлялся номер нужного изображения?

02.11.2017, 20:43. Показов 597. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как изменить код, чтобы добавлялся номер нужного изображения?

Если кликнуть по любому квадрату, то к нему добавляется класс bg6 (image6.jpg).

Как сделать чтобы при клике по первому квадрату - добавлялся класс bg1,
второй квадрат - bg2, итд...?

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
 
<style>
.box {float: left; width: 150px; height: 150px; margin: 5px; background-color: darkgreen; }
.bg1 {background-image: url('image1.jpg');}
.bg2 {background-image: url('image2.jpg');}
.bg3 {background-image: url('image3.jpg');}
.bg4 {background-image: url('image4.jpg');}
.bg5 {background-image: url('image5.jpg');}
.bg6 {background-image: url('image6.jpg');}
</style>
<body>
 
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
 
<script>
var box = document.getElementsByClassName('box');
for (var i = 0; i < box.length; i++) {
    box[i].addEventListener('click', function() {
        this.classList.toggle('bg' + i);
    });
};
</script>
 
</body>
</html>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2017, 20:43
Ответы с готовыми решениями:

Как изменить код чтобы выводился номер дня с начала года?
Насколько я поняла, 24-29 определяет количество дней от текущей даты до введённой. Как можно...

Как можно изменить код программы представленной ниже, чтобы изображения менялись местами без кнопки, тое есть произвольно!
Как можно изменить код программы представленной ниже, чтобы изображения менялись местами без...

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

Как сделать чтобы пользователь при регистрации добавлялся в определенную группу автоматически?
Здравствуйте. Подскажите пожалуйста такую вещь: Как мне сделать чтобы пользователь после...

7
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
02.11.2017, 21:06 2
Например так:

HTML5
1
2
3
4
5
6
<div class="box" ind = 1></div>
<div class="box" ind = 2></div>
<div class="box" ind = 3></div>
<div class="box" ind = 4></div>
<div class="box" ind = 5></div>
<div class="box" ind = 6></div>
Javascript
1
2
3
4
5
6
7
8
<script>
var box = document.getElementsByClassName('box');
for (var i = 0; i < box.length; i++) {
    box[i].addEventListener('click', function() {
        this.classList.toggle('bg' + this.getAttribute("ind"));
    });
};
</script>
0
1 / 1 / 0
Регистрация: 20.03.2017
Сообщений: 11
02.11.2017, 22:05  [ТС] 3
Спасибо, но нужно без вмешательства в html, непосредственно в js...
?
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
02.11.2017, 22:08 4
ibufet, Тогда

Javascript
1
2
3
4
5
6
7
8
9
<script>
var box = document.getElementsByClassName('box');
for (var i = 0; i < box.length; i++) {
    box[i].addEventListener('click', function() {
        this.classList.toggle('bg' + this.getAttribute("ind"));
    });
    box[i].setAttribute('ind', i + 1);
};
</script>
0
1 / 1 / 0
Регистрация: 20.03.2017
Сообщений: 11
02.11.2017, 22:35  [ТС] 5
Да код работает.
Но хотелось бы, чтобы код не менял html...
<div class="box" ind = 1></div>
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
02.11.2017, 22:45 6
Валит, гад(с) =)

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script>
var box = document.getElementsByClassName('box');
for (var i = 0; i < box.length; i++) 
{
    box[i].addEventListener('click', 
    
    function() {
    
        var ind = 6; 
        var elem = event.tagret; 
        
        while(elem = elem.nextSiblingElement && elem.classList.contains('box')) ind--;
        
                event.target.classList.toggle('bg' + ind);
    }
    
    );
};
</script>
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
03.11.2017, 08:29 7
Javascript
1
2
3
4
5
6
7
8
9
10
11
var setBg = function(i) {
  return function(e) {
    this.classList.toggle('bg' + (i + 1));
  }
}
 
var box = document.getElementsByClassName('box');
 
for (var i = 0; i < box.length; i++) {
  box[i].addEventListener('click', setBg(i));
};
https://jsfiddle.net/k7g638y1/
0
1 / 1 / 0
Регистрация: 20.03.2017
Сообщений: 11
03.11.2017, 22:47  [ТС] 8
Спасибо за ответы.

А можно ли сделать, чтобы при клике по соответствующему .box, в него добавлялся тег img с src + соответствующий номер...?

HTML5
1
2
3
4
5
6
<div class="box"><img src="image1.jpg"></div>
<div class="box"><img src="image2.jpg"></div>
<div class="box"><img src="image3.jpg"></div>
<div class="box"><img src="image4.jpg"></div>
<div class="box"><img src="image5.jpg"></div>
<div class="box"><img src="image6.jpg"></div>
Добавлено через 7 минут
И при повторном клике тег img из box удалялся...?
0
03.11.2017, 22:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2017, 22:47
Помогаю со студенческими работами здесь

Как сделать, чтобы при нажатии на кнопку, Label добавлялся в низ панели?
Здравствуйте. Есть проблема, не знаю как решить. Подскажите пожалуйста. Суть проблемы такова:...

Как прописать в макросе, чтобы результат добавлялся в следующую (после данных) пустую строку?
Добрый день. На одном листе данные, которые сначала фильтруются одним способом и результат...

Как изменить код сервера, чтобы он заработал?
Сервер не пашет, что не так? using System; using System.IO; using System.Net; using...

Как изменить код, чтобы он работал в стандартном модуле
Суть в том, что к этим макросам обращаются несколько форм, порядка 20 штук. Можно ли их разместить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru