Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Получить доступ к элементу
 
 автор: Слух   (11.02.2010 в 19:04)   письмо автору
 
 

Есть такая структура 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>


Как можно получить доступ к элементу
<DIV id="compare_block">
именно тому в котором был изменен селект. Вопрос не настолько тривиальный чтобы обратится просто по ид. Так как дивов может быть много, и да, с одинаковыми ид(они будут копироваться другим скриптом) Вообще мне нужно изменить весь второй селект, от значения первого, в принципе для этого мне только не хватает знаний как получить доступ к свойствам родителя(

Заранее спасибо за ответ.

  Ответить  
 
 автор: Саня   (11.02.2010 в 19:13)   письмо автору
 
   для: Слух   (11.02.2010 в 19:04)
 

ID должен быть уникальным. Это ваша основная проблема.
Можно попробовать document.getElementsByTagName('div') и в цикле искать нужный див.

  Ответить  
 
 автор: Слух   (11.02.2010 в 21:07)   письмо автору
 
   для: Саня   (11.02.2010 в 19:13)
 

Вы хотите сказать что если ид не уникальный то получить доступ к родителю нет никакой возможности?
А как же тогда выходят из ситуаций когда ид вообще нет?
document.getElementsByTagName('div')

я уже думал над этим вариантом, но как определить в каком из дивов был задействован селект, чтобы произвести какие-то действия?

  Ответить  
 
 автор: АЯ   (11.02.2010 в 21:23)   письмо автору
 
   для: Слух   (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 в 22:14)   письмо автору
 
   для: АЯ   (11.02.2010 в 21:23)
 

Спасибо, если передавать в метод объект, а потом его использовать для получения родителей, все работает отлично.

  Ответить  
 
 автор: Саня   (11.02.2010 в 21:46)   письмо автору
 
   для: Слух   (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);">


> А как же тогда выходят из ситуаций когда ид вообще нет?
По другим признакам. Например по классу или по атрибутам.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования