Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2019, 19:15   #1
Blood_ghosT
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 92
По умолчанию По клику на 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, 21:37   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от 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 в 22:04.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.06.2019, 10:56   #3
Blood_ghosT
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 92
По умолчанию

Спасибо. а можно как то сделать без 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, 15:26   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

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

Цитата:
Сообщение от Blood_ghosT Посмотреть сообщение
что то не так.
https://learn.javascript.ru/devtools
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.06.2019, 19:41   #5
Blood_ghosT
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 92
По умолчанию

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

всем спасибо.
Blood_ghosT вне форума Ответить с цитированием
Старый 22.06.2019, 22:18   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

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

Цитата:
Сообщение от 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, 12:01   #8
Blood_ghosT
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 92
По умолчанию

Спасибо!

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как узнать порядковый номер дочернего элемента ? 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 08:37
порядковый номер недели skalt12 Общие вопросы Delphi 7 01.12.2009 16:52