Показать сообщение отдельно
  #25 (permalink)  
Старый 06.08.2011, 11:33
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Сообщение от monolithed Посмотреть сообщение
Три наиболее часто используемых подхода, какой выберешь в конкретной ситуации?

<div id="div">
    <p></p>
    <p></p>
</div>

<script>
var p = document.getElementById('div').getElementsByTagName('p'),
    i = p.length;

while(i--) {
    p[i].innerHTML = p[i].nodeName;
}
</script>

<div id="div">
    <p></p>
    <p></p>
</div>

<script>
var p = document.getElementById('div').children,
    i = p.length;

while(i--) {
    p[i].innerHTML = p[i].nodeName;
}
</script>

<div id="div">
    <p></p>
    <p></p>
</div>

<script>
var p = document.getElementById('div').childNodes,
    i = p.length;

while(i--) {
    if(p[i].nodeName === 'P' && p[i].nodeType === 1)
       p[i].innerHTML = p[i].nodeName;
}
</script>



Ты сегодня не пил?

//в этом случае сперва происходит группировка, затем вызов, как Function Expression
(function() {
   alert(this);
})();

//сперва происходит объявление функции как Function Expression и вызов, затем закрывается оператор группировки
(function() {
   alert(this); 
}()); 

//объявление функции как Function Expression и вызов, оператор группировки в этом случае не нужен
!function() {
   alert(this);
}();



ничего подобного, если это касается конкретного примера.

// как в  Python
if(0 == 1)
   alert(false)
else if(1 == 2) 
      alert(false)
else 
  alert('не то не другое не верно');


//так советует Д. Крокфорд
if(0 == 1) {
   alert(false)
}

else if(1 == 2) {
      alert(false)
}

else {
  alert('не то не другое не верно');
}

// менее читабелен, но все же рабочий
if(0 == 1) alert(false); else if(1 == 2); else  alert('не то не другое не верно');

// тоже самое, что и передыдущий
if(0 == 1) alert(false);
else if(1 == 2);
else  alert('не то не другое не верно');

//из всех вариантов, лично я выберу этот
alert(0 == 1 ? 0 : 1 == 2 ? 0 : 'не то не другое не верно');


ты наверно не поверишь, но даже так работает:

<div id="div">
    <p></p>
    <p></p>
</div>

<script>
var
    
    p
    
    =
    
    document
    
    .
    
    getElementById
    
    (
        
        'div'
        
    )
    
    .
    
    childNodes
    ,
    
    i
    
    =
    
    p
    
    .
    
    length
    
    ;

while
    
    (
        
        i--
        
    )
    
{
    
    if
        
        (
            
            p
            
            [
                
                i
                
            ]
            
       .
            
            nodeName
            
            ===
            
            'P'
            
       &&
            
            p
            
            [
                
           i
                
       ]
            
       
       .
            
            nodeType
            
            ===
            
            1
            
        )
        
        alert
            
        (
            
            p
            
            [
                
                i
                
            ]
            
          .
            
            nodeName
            
        )
            
}

;
</script>




Как говорится, вкус и цвет, товарищей нет, главное незагнаться
Красава, плюсую!
Ответить с цитированием