Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Узнать parent id (https://javascript.ru/forum/jquery/11550-uznat-parent-id.html)

psyhonut 30.08.2010 17:09

Узнать parent id
 
Добрый день.
Как мне узнать ИД родителя элемента?
Пример такой:
<div id="btn_answer_1">
<a href="#" id="answer_add"><img src="insRow.png" /></a> 
</div>
<div id="btn_answer_2">
<a href="#" id="answer_add"><img src="insRow.png" /></a> 
</div>


Как узнать, по чему щелкнули: по answer_add из btn_answer_1 или из btn_answer_2?

exec 30.08.2010 17:10

this.parentNode.id;

psyhonut 30.08.2010 17:14

Спасибо, оно. А реально узнать родителя еще на уровень выше?

exec 30.08.2010 17:17

this.parentNode.parentNode.id;

psyhonut 30.08.2010 17:19

О как легко и просто. Спасибо огромное.

psyhonut 30.08.2010 17:41

Еще ошибка вылезла.
Если я щелкну по первому answer_add, то все нормально сработает, а если по второму answer_add - то ничего не происходит.

monolithed 30.08.2010 23:01

А какой результат вы хотите получить используя неуникальные идентификаторы?

psyhonut 30.08.2010 23:42

Так а как мне сделать :cray:

Sweet 30.08.2010 23:51

Цитата:

Сообщение от monolithed
А какой результат вы хотите получить используя неуникальные идентификаторы?

Читай, пока прозрение не придет:)

monolithed 30.08.2010 23:56

<div id="btn_answer_1">
	<a href="#" id="answer_add1" style="display: block;border: 1px solid; width: 100px; height: 20px;"></a> 
</div>

<div id="btn_answer_2">
	<a href="#" id="answer_add2" style="display: block;border: 1px solid; width: 100px; height: 20px;"></a> 
</div>



window.onload = function(){
	document.getElementById('answer_add1').onclick = function(){
		alert(this.parentNode.id);
	};
	document.getElementById('answer_add2').onclick = function(){
		alert(this.parentNode.id);
	};
};

psyhonut 31.08.2010 01:05

Дело в том, что неизвестно, сколько будет этих answer_add, они создаются джаваскриптом онлайн, т.е. пользователь нажал кнопку - создалась новая. И так неизвестное количество.

Kolyaj 31.08.2010 08:36

Цитата:

Сообщение от psyhonut
неизвестно, сколько будет этих answer_add

Вообще говоря известно -- должен быть только один. Т.к. id -- это уникальный идентификатор.

psyhonut 31.08.2010 09:42

Т.е. по class можно сколько угодно?

UPD. Не работает :-)

Я могу генерировать любые имена новых элементов, но как мне уйти от генерирования одинакового кода для обработки?

MikhailGirshberg 31.08.2010 10:01

Цитата:

Сообщение от psyhonut
Я могу генерировать любые имена новых элементов, но как мне уйти от генерирования одинакового кода для обработки?

Не уходите...
Один обработчик кликов на все элементы (по кр. мере, однотипные).
Здесь написано, как внутри обработчика узнать, что именно ляпнули мышОм.
Если Вы элементы генерируете так (и скорее всего в цикле):
var newEl = document.createElement('IMG')
newEl.id = "el_id"
...
, то попробуйте так:
//до начала цикла
var index = 0
...
//внутри цикла
var newEl = document.createElement('IMG')
newEl.id = "el_id" + (++index)
...

psyhonut 31.08.2010 13:46

Проблему решил по-другому. Можно закрывать.


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