Kimlikleri ile DOM ağaç elemanları genel değişkenler olmak mı?
Basit HTMLElement sarıcı için bir fikir üzerine IE ve Chrome için aşağıdaki tökezledi çalışma:
DOM ağacında KİMLİĞİ ile belirli bir HTMLElement için, div değişken adı olarak KİMLİĞİNİ kullanarak geri almak mümkündür. Yani bir div gibi
<div id="example">some text</div>
IE8 ve Chrome yapabilirsiniz:
alert(example.innerHTML); //=> 'some text'
ya
alert(window['example'].innerHTML); //=> 'some text'
Bu demekDOM ağacındaki her öğeküresel ad değişken dönüştürülür? Ve ayrıca bu tarayıcılar getElementById
yöntemi için bir replament olarak kullanabilirsiniz anlamına mı geliyor?
CEVAP
Ne olacak bu ‘unsurlar’ document
belirgin özellikleri nesne olarak eklenir. adlı Bu element isimleri document
gerçek özellikleri ile çatışma için izin olarak çok kötü bir fikir.
YANİ durum daha kötü de window
nesne özellikleri gibi unsurlar adında ekleyerek yaptı. Bu iki kat daha kötü olduğunu şimdi size önlemek için adlandırma öğeleri sonra herhangi bir üyenin ya da document
window
nesne (veya başka bir kütüphane kod projesi) belki kullan.
Ayrıca bu unsurların global gibi değişkenler olarak görülebilir anlamına gelir. Neyse ki bu durumda gerçek bir küresel var
function
tanımlamalar kodunuzu gölge, o yüzden hiç gerek yok bu kadar endişeleniyorsunuz hakkında adlandırma burada, ama eğer sen denemek için bir atama için bir global değişken ile çatışan adını ve seni unutmaya ilan var
, alacaksın bir hata IE olarak çalışır atamak değeri için elemanın kendisi.
Genellikle var
gibi unsurlar window
görünür olmak adlı güvenmek ya da bütünsel olarak ihmal kabul kötü bir uygulamadır. Daha fazla document.getElementById
, sadık yaygın olarak desteklenen ve daha az belirsiz. Eğer yazım hoşuna gitmedi mi yoksa daha kısa bir isim önemsiz kapsayıcı bir işlev yazabilirsiniz. Her iki şekilde de, hiçbir anlamı yok. kullanma kimliği-eleman arama önbellek, çünkü tarayıcılar genellikle optimize getElementById
aramak için bir hızlı arama her neyse; tüm sorunları zaman öğeleri değiştirmek id
veya eklenen/kaldırılan belge.
Opera kopyalanan YANİ, sonra Y geldi, ve şimdi de daha önce unstandardised uygulamaya koyarak adında elemanları document
özellikleri, ve daha önce-YANİ-sadece uygulamaya koyarak onlara window
being standardised tarafından HTML5, kimin yaklaşım, belge ve standardize her kötü uygulama verdirdiler bize tarayıcı yazarlar, yapma kısmını web sonsuza kadar. Yani Firefox 4 de bu destek olacak.
Ne ‘elements’ adlı? Herhangi bir şey id
bir şey name
kullanılan ‘tespit’ amaçlar: bu, formlar, resimler, çapa ve birkaç Diğerleri, ama diğer alakasız örnekleri name
öznitelik, denetim gibi isimler form giriş alanları, parametre adları <param>
veya meta veri türü <meta>
. ‘Tanımlama’ name
s id
lehine kaçınılmalıdır olanlardır.
Java genel değişkenler...
Diğer Kuruluşlar da Dahil olmak üzere ...
C genel değişkenler paylaşılan...
Birden fazla dosya üzerinde Javascript...
Nasıl JavaScript genel değişkenler önl...