|
|
|
| Есть такая структура html
<script>
function selectOne()
{
alert(this.parentNode.parentNode.nodeName);
}
</script>
<FORM action="" method="POST">
<DIV id="compare_block">
<TABLE class="controls">
<TR>
<TD rowspan="2" class="main">
<DIV class="pad" id="compare1">
<select name="selectme[]" id="selectme" class="selectable clasamea" onchange="selectOne();">
<option value="">-- select --</option>
<option value="1" title="name">name</option>
<option value="2" title="name2">name2</option>
<option value="3" title="name3">name3</option>
</select>
</DIV>
</TD>
<TD rowspan="2" class="main">
<DIV class="pad" id="compare2">
<select name="selectme2[]" id="selectme" class="selectable clasamea" onchange="selectTwo();">
</select>
</DIV>
</TD>
<TR>
</TABLE>
</DIV>
</FORM>
|
Как можно получить доступ к элементу именно тому в котором был изменен селект. Вопрос не настолько тривиальный чтобы обратится просто по ид. Так как дивов может быть много, и да, с одинаковыми ид(они будут копироваться другим скриптом) Вообще мне нужно изменить весь второй селект, от значения первого, в принципе для этого мне только не хватает знаний как получить доступ к свойствам родителя(
Заранее спасибо за ответ. | |
|
|
|
|
|
|
|
для: Слух
(11.02.2010 в 19:04)
| | ID должен быть уникальным. Это ваша основная проблема.
Можно попробовать document.getElementsByTagName('div') и в цикле искать нужный див. | |
|
|
|
|
|
|
|
для: Саня
(11.02.2010 в 19:13)
| | Вы хотите сказать что если ид не уникальный то получить доступ к родителю нет никакой возможности?
А как же тогда выходят из ситуаций когда ид вообще нет?
document.getElementsByTagName('div')
|
я уже думал над этим вариантом, но как определить в каком из дивов был задействован селект, чтобы произвести какие-то действия? | |
|
|
|
|
|
|
|
для: Слух
(11.02.2010 в 21:07)
| |
onchange="selectOne (this)"
и
<script>
function selectOne (obj)
{
alert (obj.parentNode.parentNode.nodeName);
}
</script>
| или
onchange="selectOne (event)"
и
<script>
function selectOne (x)
{
var e = x || window.event, obj = e.target || e.srcElement;
alert (obj.parentNode.parentNode.nodeName);
}
</script>
|
| |
|
|
|
|
|
|
|
для: АЯ
(11.02.2010 в 21:23)
| | Спасибо, если передавать в метод объект, а потом его использовать для получения родителей, все работает отлично. | |
|
|
|
|
|
|
|
для: Слух
(11.02.2010 в 21:07)
| | Попробуйте так.
<script>
function selectOne(e) {
var select = e.currentTarget;
var compare_block = select.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
alert(compare_block.nodeName);
}
</script>
<select ... onchange="selectOne(event);">
|
> А как же тогда выходят из ситуаций когда ид вообще нет?
По другим признакам. Например по классу или по атрибутам. | |
|
|
|