Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 20.06.2019, 20:15   #1
Blood_ghosT
Форумчанин
 
Регистрация: 29.07.2011
Адрес: г. Караганда(Казахстан)
Сообщений: 53
Репутация: 10
По умолчанию По клику на div узнать его порядковый номер

Здравствуйте форумчане.
Дано 10 дивов. Подскажите как реализовать что при нажатии на любой див из 10 шт выходил alert можно не алерт c сообщением порядкового номера кликнутого дива.

делал так

Код:
function myfunc() {
	var divnumber = document.getElementsByClassName('number');
	
	for (i = 0; i < divnumber.length; i++) {
		//console.log(divnumber[i])
		for (j = 0; j < divnumber[i].length; j++)
			console.log(divnumber[i][j])
	} 
}
что не так??
функцию вешал на onmouseover (при наведении) или на onmousedown не принципиально на что вешать
за ранее спасибо!
Blood_ghosT вне форума   Ответить с цитированием
Старый 20.06.2019, 22:37   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,613
Репутация: 5617
По умолчанию

Цитата:
Сообщение от Blood_ghosT Посмотреть сообщение
Дано 10 дивов.
где дано? приведите код разметки.


Цитата:
Сообщение от Blood_ghosT Посмотреть сообщение
функцию вешал на onmouseover (при наведении) или на onmousedown не принципиально на что вешать
ну и где в этой функции ссылка на тот div, на который Вы навели мышку?
Ваш код перебирает все дивы, что есть, без всякой привязки к тому, куда Вы мышкой тыкаете.

ну и добавьте в div'ы что-то, что позволит один div отличить от другого (в идеале - id)

просто для примера:
https://jsfiddle.net/6kt2pmvj/
Код HTML:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
<body>
<div id='1'> это div</div>
<div id='2'> это div</div>
<div id='3'> это div</div>
<div>Click at: <span id="result"></span></div>

<script>

var divs = document.getElementsByTagName("div");

var myFunction = function(e) {
	  // Get IE event object
	  e = e || window.event;
	  // Get target in W3C browsers & IE
	  var elementId = e.target ? e.target.id : e.srcElement.id;
	  var result = document.getElementById("result"); 
	  if(result){
		result.innerHTML = elementId;
	  }
};

for (var i = 0; i < divs.length; i++) {
    divs[i].addEventListener('click', myFunction, false);
}

</script>


</body>
</html>

Последний раз редактировалось Serge_Bliznykov; 20.06.2019 в 23:04.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 22.06.2019, 11:56   #3
Blood_ghosT
Форумчанин
 
Регистрация: 29.07.2011
Адрес: г. Караганда(Казахстан)
Сообщений: 53
Репутация: 10
По умолчанию

Спасибо. а можно как то сделать без e.target или window.event???

html code
Код:
<div class="number" onmousedown="numberfunc()"></div>
			<div class="number" onmousedown="numberfunc()"></div>
			<div class="number" onmousedown="numberfunc()"></div>
			<div class="number" onmousedown="numberfunc()"></div>
			<div class="number" onmousedown="numberfunc()"></div>
			<div class="number" onmousedown="numberfunc()"></div>
			<div class="number" onmousedown="numberfunc()"></div>
			<div class="number" onmousedown="numberfunc()"></div>
			<div class="number" onmousedown="numberfunc()"></div>
			<div class="number" onmousedown="numberfunc()"></div>
js code
Код:
function myfunc() {
	var divnumber = document.getElementsByClassName('number');
	var n=0;
	for (i = 0; i < divnumber.length; i++) {
		divnumber[i].setAttribute('id', 'n'+n++)
		}
	divnumber[i].onclick = 	numberfunc();
}

function numberfunc() {
	var divnumber = document.getElementsByClassName('number');
		divnumber.getAttribute('id');
}
myfunc() дает id дивам а numberfunc() выводи номер айди такой был план но что то не так.
Blood_ghosT вне форума   Ответить с цитированием
Старый 22.06.2019, 16:26   #4
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,746
Репутация: 3673

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от Blood_ghosT Посмотреть сообщение
сделать без e.target или window.event???
зачем?

Цитата:
Сообщение от Blood_ghosT Посмотреть сообщение
что то не так.
https://learn.javascript.ru/devtools
Alex11223 на форуме   Ответить с цитированием
Старый 22.06.2019, 20:41   #5
Blood_ghosT
Форумчанин
 
Регистрация: 29.07.2011
Адрес: г. Караганда(Казахстан)
Сообщений: 53
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
зачем?
ну я как бы еще не проходил e.target и window.event. поэтому и пытаюсь сделать из пройденного материала.

всем спасибо.
Blood_ghosT вне форума   Ответить с цитированием
Старый 22.06.2019, 23:18   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,613
Репутация: 5617
По умолчанию

Цитата:
Сообщение от Blood_ghosT Посмотреть сообщение
myfunc() дает id дивам
а где она вызывается?
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 22.06.2019, 23:48   #7
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,613
Репутация: 5617
По умолчанию

Цитата:
Сообщение от Blood_ghosT Посмотреть сообщение
ну я как бы еще не проходил e.target и window.event. поэтому и пытаюсь сделать из пройденного материала.
я не знаю, что Вы проходите и зачем, но костыли Вы в своей жизни ещё научитесь городить. Лучше бы изучали - КАК правильно делать, а не - КАК сделать с помощью костылей и палок.

впрочем,
Вы так хотите?

https://jsfiddle.net/gcj03mna/

Код HTML:
<div class="number"></div>
<div class="number"></div>
<div class="number"></div>
<div class="number"></div>
<div class="number"></div>
<div class="number"></div>
<div class="number"></div>
<div class="number"></div>
<div class="number"></div>
<div class="number"></div>
JS
Код:
function myfunc() {
	var divnumber = document.getElementsByClassName('number');
	for (i = 0; i < divnumber.length; i++) {
		//divnumber[i].setAttribute('id', 'n'+n++);
		divnumber[i].innerHTML = "text div";    
		divnumber[i].onclick = numberfunc(i);
	}	
}
	
function numberfunc(i) {
   return function () {
		alert("div num " + (i+1));
   }
}

myfunc();
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 23.06.2019, 13:01   #8
Blood_ghosT
Форумчанин
 
Регистрация: 29.07.2011
Адрес: г. Караганда(Казахстан)
Сообщений: 53
Репутация: 10
По умолчанию

Спасибо!

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Лучше бы изучали - КАК правильно делать
буду стараться
Blood_ghosT вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как узнать порядковый номер дочернего элемента ? macdack JavaScript, Ajax 1 02.09.2014 20:50
Порядковый номер Zhenya Yakubov Microsoft Office Excel 3 02.09.2014 10:43
порядковый номер baks1 Microsoft Office Excel 1 30.04.2012 20:54
Порядковый номер записи Yur@ БД в Delphi 4 25.12.2009 09:37
порядковый номер недели skalt12 Общие вопросы Delphi 7 01.12.2009 17:52


00:25.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru