this.id (come sai)
this.value(sulla maggior parte dei tipi di input. solo i problemi che conosco sono IE quando un <select>non ha valueproprietà impostate sui suoi <option>elementi o ingressi radio in Safari.)
this.className per ottenere o impostare un'intera proprietà "class"
this.selectedIndexcontro a <select>per ottenere l'indice selezionato
this.optionscontro a <select>per ottenere un elenco di <option>elementi
this.textcontro an <option>per ottenere il suo contenuto testuale
this.rowscontro a <table>per ottenere una raccolta di <tr>elementi
this.cellscontro a <tr>per ottenere le sue celle (td e th)
this.parentNode per avere un genitore diretto
this.checkedper ottenere lo stato verificato di un checkbox Thanks @Tim Down
this.selectedper ottenere lo stato selezionato di un option ringraziamento @Tim giù
this.disabledper ottenere lo stato disabilitato di un input Thanks @Tim Down
this.readOnlyper ottenere lo stato readOnly di un input Thanks @Tim Down
this.hrefcontro un <a>elemento per ottenere il suohref
this.hostnamecontro un <a>elemento per ottenere il suo dominiohref
this.pathnamecontro un <a>elemento per ottenere il suo percorsohref
this.searchcontro un <a>elemento per ottenere la sua stringa di queryhref
this.src contro un elemento in cui è valido avere un src
... Penso che tu abbia avuto l'idea.
Ci saranno momenti in cui le prestazioni sono cruciali. Ad esempio, se stai eseguendo qualcosa in un loop molte volte, potresti voler abbandonare jQuery.
In generale è possibile sostituire:
$(el).attr('someName');
con:
Sopra era formulato male. getAttributenon è un sostituto, ma recupera il valore di un attributo inviato dal server e il suo corrispondente setAttributelo imposterà. Necessario in alcuni casi.
Le frasi sottostanti lo hanno coperto. Vedi questa risposta per un trattamento migliore.
el.getAttribute('someName');
... per accedere direttamente a un attributo. Si noti che gli attributi non sono gli stessi delle proprietà (anche se a volte si rispecchiano a vicenda). Certo che c'è setAttributeanche.
Supponiamo che tu abbia avuto una situazione in cui hai ricevuto una pagina in cui devi scartare tutti i tag di un certo tipo. È breve e facile con jQuery:
$('span').unwrap(); // unwrap all span elements
Ma se ce ne sono molti, potresti voler fare una piccola API DOM nativa:
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] );
}
Questo codice è piuttosto breve, funziona meglio della versione jQuery e può essere facilmente trasformato in una funzione riutilizzabile nella tua libreria personale.
Può sembrare che io abbia un ciclo infinito con l'esterno a whilecausa di while(spans[0]), ma poiché abbiamo a che fare con una "lista live", questa viene aggiornata quando eseguiamo il parent.removeChild(span[0]);. Questa è una caratteristica piuttosto ingegnosa che ci manca quando si lavora con un array (o un oggetto simile a un array).
this.id?