2012-10-16 17 views
5

Olası Çoğalt:
IE/Chrome: are DOM tree elements global variables here?Referans hiçbir document.getElementById

Şu anda mobil jquery kullanarak bir mobil sitede çalışıyorum ve ilginç bir şey (fark Bana yine de, ben hala js için yeni). Bir fonksiyonun içinde, sadece bir kimliğe sahip bir öğeye başvurabilirsiniz.

<!DOCTYPE html> 
<html> 
    <head></head> 
    <body onload="tt()"> 
    <div id="abc">Test</div> 
    <a id="cba">Test2</a> 
    </body> 
    <Script> 
    function tt() { 
     console.log(abc); 
     abc.style.backgroundColor = "red"; 
     return cba; 
    } 
    </Script> 
</html> 

Hayır getElementById, hiçbir jquery seçici, sadece id:

Bu

(krom 22.0.x, firefox 16.0.1 ve safari 5.1.7 üzerine) Ben kullanılan test kodudur. Her zaman böyle mi oldu? Eğer öyleyse, bu iyi bir uygulamadır ve neden bu işe yarar? Düşüncenin bir bağlamı olması gerektiğini düşünüyorum, ama nerede, sayfa bu mu?

Herhangi bir fikir takdir edilecektir, Teşekkürler.

+0

Sorunuzu yanıtlamak için, bir _horrible_ alışkanlığı gibi geliyor. – jahroy

+0

Teşekkürler çocuklar. Büyük tepki, iyi eski getElementById :) ile kalacağım – user1736525

cevap

5

Gerçekten yapıyoruz: Bu IE gerçekten kötü bir tasarım seçimdi başladı şey

window.abc; 

olduğunu.

Gerçekten kopyası ama başlığı bu yansıtmadığını great answer to a very very similar question

bakınız.

Ne demek istediğimi görmek için bu satırı konsolunuzda deneyin.

(function(){ console.log(this); })(); // logs the Window object