this.id (jak wiesz)
this.value(w większości typów danych wejściowych. tylko problemy, które znam, to IE, gdy a <select>nie ma valueustawionych właściwości swoich <option>elementów lub danych wejściowych radia w Safari).
this.className aby uzyskać lub ustawić całą właściwość „class”
this.selectedIndexprzeciwko a, <select>aby uzyskać wybrany indeks
this.optionsprzeciw a, <select>aby uzyskać listę <option>elementów
this.textprzeciwko, <option>aby uzyskać jego treść tekstową
this.rowsprzeciwko, <table>aby uzyskać kolekcję <tr>elementów
this.cellsprzeciw a, <tr>aby uzyskać jego komórki (td i th)
this.parentNode uzyskać bezpośredniego rodzica
this.checkedaby uzyskać sprawdzony stan checkbox Thanks @Tim Down
this.selectedaby uzyskać wybrany stan option podziękowania @ Tim Down
this.disabledaby uzyskać wyłączony stan input Thanks @Tim Down
this.readOnlyaby uzyskać stan readOnly: input Thanks @Tim Down
this.hrefprzeciwko <a>elementowi, aby uzyskaćhref
this.hostnameprzeciwko <a>elementowi, aby uzyskać jego domenęhref
this.pathnameprzeciwko <a>elementowi, aby uzyskać ścieżkę jegohref
this.searchprzeciwko <a>elementowi, aby uzyskać jego kwerendęhref
this.src przeciwko elementowi, w którym poprawne jest posiadanie src
... Myślę, że masz pomysł.
Będą chwile, kiedy wydajność będzie kluczowa. Na przykład, jeśli wykonujesz coś w pętli wiele razy, możesz porzucić jQuery.
Ogólnie możesz wymienić:
$(el).attr('someName');
z:
Powyżej było źle sformułowane. getAttributenie jest zamiennikiem, ale pobiera wartość atrybutu wysłanego z serwera, a odpowiadająca mu setAttributewartość ustawi go. Niezbędne w niektórych przypadkach.
Poniższe zdania w pewnym sensie to obejmowały. Zobacz tę odpowiedź, aby uzyskać lepsze leczenie.
el.getAttribute('someName');
... aby uzyskać bezpośredni dostęp do atrybutu. Zauważ, że atrybuty nie są takie same jak właściwości (choć czasami się odbijają). Oczywiście, że setAttributeteż.
Załóżmy, że wystąpiła sytuacja, w której otrzymałeś stronę, na której musisz rozpakować wszystkie tagi określonego typu. Jest to krótkie i łatwe w jQuery:
$('span').unwrap(); // unwrap all span elements
Ale jeśli jest ich wiele, możesz zrobić trochę natywnego interfejsu API DOM:
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] );
}
Ten kod jest dość krótki, działa lepiej niż wersja jQuery i można go łatwo przekształcić w funkcję wielokrotnego użytku w osobistej bibliotece.
Może się wydawać, że mam nieskończoną pętlę z zewnętrzną z whilepowodu while(spans[0]), ale ponieważ mamy do czynienia z „listą na żywo”, jest ona aktualizowana, gdy wykonujemy parent.removeChild(span[0]);. Jest to całkiem sprytna funkcja, za którą tęsknimy podczas pracy z tablicą (lub obiektem podobnym do tablicy).
this.id?