Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   не могу получить значение атрибута (https://javascript.ru/forum/events/12889-ne-mogu-poluchit-znachenie-atributa.html)

aleks_lv 07.11.2010 15:10

не могу получить значение атрибута
 
Почему не работает такой код
<div id="yu">
   <img src="Smail/1.gif" width="20" height="24"   title="smail:-)" />
   <img src="Smail/2.gif" width="28" height="23" title="laughing out lou" />
   <img src="Smail/5.gif" width="30" height="26"  title="tank you" />
</div>

<script language="JavaScript" type="text/javascript">
      /*<![CDATA[*/
         var cont=document.getElementById('yu');
          var arr=[];
          for (var x=cont.firstChild;x!=null;x=x.nextSibling)
                 {   var y=x.getAttribute('title') ;
                    arr.push(y);}
          var kl=arr[0] ;
           alert(kl);
   /*]]>*/
   </script>

monolithed 07.11.2010 15:14

Отформатируйте свой код, для этого есть специальные дескрипторы [html] и [JS]

exec 07.11.2010 15:15

Как только цикл натыкается на текстовую ноду (пробелы между тегами считаются за DOM-элемент), возникает TypeError из-за того, что текстовые ноды не имеют метод getAttribute.

aleks_lv 07.11.2010 15:30

То таким макаром я не получу значения?Надо идти по другому пути?

aleks_lv 07.11.2010 15:51

Спасибо exec!!!Намек понял и получилось
<script language="JavaScript" type="text/javascript">
   /*<![CDATA[*/
     var cont=document.getElementById('yu');
     var arr=[];
     for (var x=cont.firstChild;x!=null;x=x.nextSibling)
     { if(x.nodeType==1)
      { var y=x.getAttribute('title') ;
       arr.push(y);}}
       var kl=arr[0] ;
    alert(kl);
   /*]]>*/
 </script>

monolithed 07.11.2010 15:52

<div id="div">
   <img src="#" title="1" alt="" />
   <img src="#" title="2" alt="" />
   <img src="#" title="3" alt="" />
</div>

<script type="text/javascript">
var div = document.getElementById('div').getElementsByTagName('img');  
for(i=0; i<div.length; i++){
   alert(div[i].title);
}
</script>


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