Bunu şu şekilde yapabilirsiniz:
var list = document.getElementById("foo").getElementsByClassName("bar");
if (list && list.length > 0) {
list[0].innerHTML = "Goodbye world!";
}
veya daha az hata kontrolü ve daha fazla kısalık ile yapmak istiyorsanız, böyle bir satırda yapılabilir:
document.getElementById("foo").getElementsByClassName("bar")[0].innerHTML = "Goodbye world!";
Açıklama:
- Elemanı alıyorsunuz
id="foo"
.
- Daha sonra, o nesnenin içinde bulunan nesneleri bulursunuz
class="bar"
.
- Bu, dizi benzeri bir nodeList döndürür, böylece bu nodeList içindeki ilk öğeye başvurursunuz
- Daha sonra
innerHTML
içeriğini değiştirmek için o öğeyi ayarlayabilirsiniz .
Uyarılar: bazı eski tarayıcılar desteklemez getElementsByClassName
(örneğin eski IE sürümleri). Bu işlev eksikse yerine yerleştirilebilir.
Burası, tarayıcı uyumluluğu hakkında endişelenmek yerine yerleşik CSS3 seçici desteğine sahip bir kütüphane kullanmanızı öneririm (bir başkasının tüm işi yapmasına izin verin). Bunu yapmak için sadece bir kütüphane istiyorsanız, Sizzle harika çalışır. Sizzle'de bu şu şekilde yapılır:
Sizzle("#foo .bar")[0].innerHTML = "Goodbye world!";
jQuery yerleşik Sizzle kütüphanesi vardır ve jQuery, bu olurdu:
$("#foo .bar").html("Goodbye world!");
document.getElementsByClassName
iyi çalışır.