this.id (як ти знаєш)
this.value(для більшості типів вводу. Єдині проблеми, які я знаю, - це IE, коли у елементів <select>немає valueвластивостей, встановлених на його <option>елементах, або радіовведення в Safari.)
this.className щоб отримати або встановити весь властивість "класу"
this.selectedIndexпроти a, <select>щоб отримати вибраний індекс
this.optionsпроти а, <select>щоб отримати список <option>елементів
this.textпроти, <option>щоб отримати його текстовий вміст
this.rowsпроти, <table>щоб отримати колекцію <tr>елементів
this.cellsпроти a, <tr>щоб отримати його клітини (td & th)
this.parentNode отримати безпосереднього батька
this.checkedщоб отримати перевірений стан checkbox Подяки @Tim Down
this.selectedщоб отримати вибраний стан option Подяки @Tim Down
this.disabledщоб отримати статус відключеного input Подяки @Tim Down
this.readOnlyщоб отримати стан readOnly завдяки input Подяки @Tim Down
this.hrefпроти <a>елемента, щоб отримати йогоhref
this.hostnameпроти <a>елемента, щоб отримати область йогоhref
this.pathnameпроти <a>елемента, щоб отримати його шляхhref
this.searchпроти <a>елемента, щоб отримати його рядок запитуhref
this.src проти елемента, де допустимо мати а src
... Я думаю, ви зрозуміли ідею.
Будуть часи, коли продуктивність має вирішальне значення. Наприклад, якщо ви виконуєте щось у циклі багато разів, ви можете захопити jQuery.
Загалом ви можете замінити:
$(el).attr('someName');
з:
Зверху було погано сформульовано. getAttributeне є заміною, але вона отримує значення атрибута, надісланого з сервера, і його відповідне setAttributeвстановить його. Необхідна в деяких випадках.
Висловлювання, подані нижче, накривали це. Дивіться цю відповідь для кращого лікування.
el.getAttribute('someName');
... для прямого доступу до атрибуту. Зауважте, що атрибути не збігаються з властивостями (хоча вони іноді відображають один одного). Звичайно, setAttributeтеж є.
Скажімо, у вас виникла ситуація, коли ви отримали сторінку, де вам потрібно розгортати всі теги певного типу. Це швидко і просто за допомогою jQuery:
$('span').unwrap(); // unwrap all span elements
Але якщо їх багато, можливо, ви захочете зробити трохи рідного 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] );
}
Цей код досить короткий, він працює краще, ніж версія jQuery, і його можна легко перетворити на функцію багаторазового використання у вашій персональній бібліотеці.
Може здатися, що у мене є нескінченний цикл із зовнішньою whileпричиною while(spans[0]), але тому, що ми маємо справу зі "живим списком", він оновлюється, коли ми робимо parent.removeChild(span[0]);. Це досить чудова функція, яку ми не вистачаємо, працюючи з масивом (або з об’єктом, схожим на масив).
this.id?