this.id
(bildiğin gibi)
this.value
(çoğu giriş türünde. öğelerinde ayarlanmış özelliklere veya Safari'de radyo girişlerine <select>
sahip olmadığında yalnızca bildiğim sorunlar IE'dir.)value
<option>
this.className
"sınıf" özelliğinin tamamını almak veya ayarlamak için
this.selectedIndex
a karşı <select>
seçili dizini almak için
this.options
Bir karşı <select>
bir listesini almak için <option>
elemanlar
this.text
karşı bir <option>
metin içeriği almak için
this.rows
karşı bir elemanlar <table>
koleksiyonu almak için<tr>
this.cells
karşı <tr>
hücrelerini almak için (td & th)
this.parentNode
doğrudan ebeveyn olmak
this.checked
Teşekkür @Tim Down kontrol durumunu almak içincheckbox
this.selected
Teşekkür @Tim Down seçilen durumunu almak içinoption
this.disabled
Teşekkürler @Tim Down devre dışı durumunu almak içininput
this.readOnly
Teşekkürler @Tim Down salt okunur durumunu almak içininput
this.href
<a>
almak için bir öğeye karşıhref
this.hostname
<a>
etki alanını elde etmek için bir öğeye karşıhref
this.pathname
<a>
yolunu almak için bir öğeye karşıhref
this.search
<a>
onun sorgu dizesini almak için bir öğeye karşıhref
this.src
geçerli olduğu bir öğeye karşı src
... sanırım bu fikri anladınız.
Performansın çok önemli olduğu zamanlar olacaktır. Bir döngüde birçok kez bir şey yapıyorsanız, jQuery'den kurtulmak isteyebilirsiniz.
Genel olarak aşağıdakileri değiştirebilirsiniz:
$(el).attr('someName');
ile:
Yukarıda kötü ifade edildi. getAttribute
yerine geçmez, ancak sunucudan gönderilen bir özniteliğin değerini alır ve karşılık gelen setAttribute
değeri ayarlar. Bazı durumlarda gerekli.
Aşağıdaki cümleler bir nevi örtbas etti. Daha iyi bir tedavi için bu cevaba bakınız .
el.getAttribute('someName');
... bir özelliğe doğrudan erişmek için. Niteliklerin özelliklerle aynı olmadığını unutmayın (bazen birbirlerini yansıtırlar). Tabii ki de var setAttribute
.
Belirli bir türdeki tüm etiketlerin paketini açmanız gereken bir sayfa aldığınızda bir durumunuz olduğunu varsayalım. JQuery ile kısa ve kolaydır:
$('span').unwrap(); // unwrap all span elements
Ancak, çok fazla varsa, küçük bir yerel DOM API'si yapmak isteyebilirsiniz:
var spans = document.getElementsByTagName('span');
while( spans[0] ) {
var parent = spans[0].parentNode;
while( spans[0].firstChild ) {
parent.insertBefore( spans[0].firstChild, spans[0]);
}
parent.removeChild( spans[0] );
}
Bu kod oldukça kısadır, jQuery sürümünden daha iyi performans gösterir ve kişisel kütüphanenizde yeniden kullanılabilir bir işleve kolayca dönüştürülebilir.
while
Çünkü dış ile sonsuz bir döngü var gibi görünebilir while(spans[0])
, ama bir "canlı liste" ile uğraştığımız için yaptığımızda güncellenir parent.removeChild(span[0]);
. Bu, bir Array (veya Array benzeri nesne) ile çalışırken kaçırdığımız oldukça şık bir özelliktir.
this.id
mi arıyorsunuz?