Skip to content

Commit 59d60c0

Browse files
committed
Attributes and properties - translate review fixes
1 parent 29cec12 commit 59d60c0

File tree

1 file changed

+12
-11
lines changed
  • 2-ui/1-document/06-dom-attributes-and-properties

1 file changed

+12
-11
lines changed

2-ui/1-document/06-dom-attributes-and-properties/article.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Атрибуты и свойства
22

3-
Когда браузер загружает страницу, он "читает" (другими словами: "парсит") HTML и генерирует из него DOM-объекты. Для элементов-узлов большинство стандартных HTML-атрибутов автоматически становятся свойствами DOM-объектов.
3+
Когда браузер загружает страницу, он "читает" (также говорят: "парсит") HTML и генерирует из него DOM-объекты. Для узлов-элементов большинство стандартных HTML-атрибутов автоматически становятся свойствами DOM-объектов.
44

55
Например, для такого тега `<body id="page">` у DOM-объекта будет такое свойство `body.id="page"`.
66

7-
Но преобразование атрибута в свойство не происходит один в один! В этой главе мы уделим внимание различию этих двух понятий, чтобы посмотреть, как работать с ними, когда они одинаковые, а когда разные.
7+
Но преобразование атрибута в свойство происходит не один-в-один! В этой главе мы уделим внимание различию этих двух понятий, чтобы посмотреть, как работать с ними, когда они одинаковые, а когда разные.
88

99
## DOM-свойства
1010

@@ -33,7 +33,7 @@ document.body.sayTagName = function() {
3333
document.body.sayTagName(); // BODY (значением "this" в этом методе будет document.body)
3434
```
3535

36-
Также можно изменить встроенные прототипы, такие как `Element.prototype`, а также добавить новые методы ко всем элементам:
36+
Также можно изменять встроенные прототипы, такие как `Element.prototype` и добавлять новые методы ко всем элементам:
3737

3838
```js run
3939
Element.prototype.sayHi = function() {
@@ -83,7 +83,7 @@ document.body.sayHi(); // Hello, I'm BODY
8383
</body>
8484
```
8585

86-
Таким образом, для нестандартных атрибутов не может быть соответствующих DOM-свойств. Есть ли способ получить такие атрибуты?
86+
Таким образом, для нестандартных атрибутов не будет соответствующих DOM-свойств. Есть ли способ получить такие атрибуты?
8787

8888
Конечно. Все атрибуты доступны с помощью следующих методов:
8989

@@ -135,7 +135,7 @@ document.body.sayHi(); // Hello, I'm BODY
135135

136136
Пожалуйста, обратите внимание:
137137

138-
1. `getAttribute('About')` -- в методе первая буква заглавная, а в HTML -- строчная. Но это неважно: имена атрибутов регистронезависимы.
138+
1. `getAttribute('About')` -- здесь первая буква заглавная, а в HTML -- строчная. Но это не важно: имена атрибутов регистронезависимы.
139139
2. Мы можем присвоить что угодно атрибуту, но это станет строкой. Поэтому в этой строчке мы получаем значение `"123"`.
140140
3. Все атрибуты, в том числе те, которые мы установили, видны в `outerHTML`.
141141
4. Коллекция `attributes` является итерируемой. В ней есть все элементы атрибута (стандартные и нестандартные) в виде объектов со свойствами `name` и `value`.
@@ -186,7 +186,7 @@ document.body.sayHi(); // Hello, I'm BODY
186186
- Изменение атрибута `value` обновило свойство.
187187
- Но изменение свойства не повлияло на атрибут.
188188

189-
На самом деле эта "особенность" может пригодиться, потому что пользователь может изменять `value`, и если после этого мы захотим восстановить "оригинальное" значение из HTML, оно будет в атрибуте.
189+
На самом деле эта "особенность" может пригодиться, потому что действия пользователя могут приводить к изменениям `value`, и если после этого мы захотим восстановить "оригинальное" значение из HTML, оно будет в атрибуте.
190190

191191
## DOM-свойства типизированы
192192

@@ -216,9 +216,10 @@ DOM-свойства не всегда являются строками. Нап
216216
</script>
217217
```
218218

219-
Это важное отличие. Но даже если DOM-свойство является строкой, оно может отличаться от атрибута!
219+
Хотя большинство свойств, всё же, строки.
220+
При этом некоторые из них, хоть и строки, могут отличаться от атрибутов.
220221

221-
Например, DOM-свойство `href` всегда *полный* URL, даже если атрибут содержит относительный URL или просто `#hash`.
222+
Например, DOM-свойство `href` всегда содержит *полный* URL, даже если атрибут содержит относительный URL или просто `#hash`.
222223

223224
Ниже пример:
224225

@@ -265,7 +266,7 @@ DOM-свойства не всегда являются строками. Нап
265266
</script>
266267
```
267268

268-
Также, они могут быть использованы, чтобы стилизовать элементы.
269+
Также они могут быть использованы, чтобы стилизовать элементы.
269270

270271
Например, здесь для состояния заказа используется атрибут `order-state`:
271272

@@ -309,7 +310,7 @@ div.setAttribute('order-state', 'canceled');
309310

310311
Но с пользовательскими атрибутами могут возникнуть проблемы. Что если мы используем нестандартный атрибут для наших целей, а позже он появится в стандарте и будет выполнять какую-то функцию? Язык HTML живой, он растёт, появляется больше атрибутов, чтобы удовлетворить потребности разработчиков. В этом случае могут возникнуть неожиданные эффекты.
311312

312-
Чтобы избежать конфликтов, существуют атрибуты [data-*](https://html.spec.whatwg.org/#embedding-custom-non-visible-data-with-the-data-*-attributes).
313+
Чтобы избежать конфликтов, существуют атрибуты вида [data-*](https://html.spec.whatwg.org/#embedding-custom-non-visible-data-with-the-data-*-attributes).
313314

314315
**Все атрибуты, начинающиеся с префикса "data-", зарезервированы для использования программистами. Они доступны в свойстве `dataset`.**
315316

@@ -380,7 +381,7 @@ div.setAttribute('order-state', 'canceled');
380381
- `elem.removeAttribute(name)` -- удалить атрибут.
381382
- `elem.attributes` -- это коллекция всех атрибутов.
382383

383-
В большинстве случаев DOM-свойства окажутся очень полезными. Нужно использовать атрибуты только тогда, когда DOM-свойства не подходят нам, когда нужны именно атрибуты, например:
384+
В большинстве ситуаций предпочтительнее использовать DOM-свойства. Нужно использовать атрибуты только тогда, когда DOM-свойства не подходят, когда нужны именно атрибуты, например:
384385

385386
- Нужен нестандартный атрибут. Но если он начинается с `data-`, тогда нужно использовать `dataset`.
386387
- Мы хотим получить именно то значение, которое написано в HTML. Значение DOM-свойства может быть другим, например, свойство `href` -- всегда полный URL, а нам может понадобиться получить "оригинальное" значение.

0 commit comments

Comments
 (0)