Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[zh-cn]: create docs for HTMLAllCollection #24190

Merged
merged 2 commits into from
Nov 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions files/zh-cn/web/api/htmlallcollection/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: HTMLAllCollection
slug: Web/API/HTMLAllCollection
l10n:
sourceCommit: e8e22a6e6d6455222c8c1a1e1346a149d300ab35
---

{{APIRef("DOM")}}{{Deprecated_Header}}

**`HTMLAllCollection`** 接口表示*所有*文档元素(通过索引(类似于数组)和元素的 [`id`](/zh-CN/docs/Web/HTML/Global_attributes/id) 访问)的集合。它由 {{domxref("document.all")}} 属性返回。

`HTMLAllCollection` 的形态与 {{domxref("HTMLCollection")}} 非常相似,但两者在行为上存在许多细微差异,例如,`HTMLAllCollection` 可以作为函数调用,并且其 `item()` 方法可以使用表示元素 `id` 和 `name` 属性的字符串调用。

## 实例属性

- {{domxref("HTMLAllCollection.length")}} {{ReadOnlyInline}}
- : 返回集合中项目的数量。

## 实例方法

- {{domxref("HTMLAllCollection.item()")}}
- : 返回位于集合中指定偏移位置的元素,或者返回其 `id` 或 `name` 属性具有指定值的元素。如果未找到任何元素,则返回 `null`。
- {{domxref("HTMLAllCollection.namedItem()")}}
- : 返回集合中第一个其 [`id`](/zh-CN/docs/Web/HTML/Global_attributes/id) 或 `name` 属性与给定的字符串名称匹配的[元素](/zh-CN/docs/Web/API/Element),如果没有匹配的元素,则返回 `null`。

## JavaScript 中的用法

### 索引访问

除了上述方法外,可以通过整数索引和字符串属性名称来访问 `HTMLAllCollection` 中的元素。HTML `id` 属性可能包含 `:` 和 `.` 作为有效字符,这需要使用方括号属性访问。`collection[i]` 等同于 `collection.item(i)`,其中 `i` 可以是整数、包含整数的字符串或表示 `id` 的字符串。

### 作为函数调用

`HTMLAllCollection` 对象是可调用的。当无参数调用或传入 `undefined` 时,它返回 `null`。否则,当传入相同参数时,它返回与 {{domxref("HTMLAllCollection/item", "item()")}} 方法相同的值。

### 特殊类型转换行为

由于历史原因,`document.all` 是一个在以下方面表现得像 `undefined` 的对象:

- 它与 `undefined` 和 `null` 是[宽松相等](/zh-CN/docs/Web/JavaScript/Reference/Operators/Equality)的。
- 在布尔上下文中,它是[假值](/zh-CN/docs/Glossary/Falsy)。
- 它的 [`typeof`](/zh-CN/docs/Web/JavaScript/Reference/Operators/typeof) 结果是 `"undefined"`。

这些特殊行为确保了如下代码能够正常工作:

```js
if (document.all) {
// 假设我们是在 IE 浏览器中;提供特殊逻辑
}
// 假设我们是在一个现代浏览器中
```

即使代码在出于兼容性原因实现了 `document.all` 的浏览器中运行,它也将继续提供现代浏览器的行为。

然而,在所有其他上下文中,`document.all` 仍然是一个对象。例如:

- 它与 `undefined` 或 `null` 都不是[严格相等](/zh-CN/docs/Web/JavaScript/Reference/Operators/Strict_equality)的。
- 当在[空值合并运算符](/zh-CN/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing)(`??`)或[可选链运算符](/zh-CN/docs/Web/JavaScript/Reference/Operators/Optional_chaining)(`?.`)的左侧使用时,它不会导致表达式短路。

## 规范

{{Specifications}}

## 浏览器兼容性

{{Compat}}

## 参见

- {{domxref("HTMLCollection")}}
37 changes: 37 additions & 0 deletions files/zh-cn/web/api/htmlallcollection/item/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
title: HTMLAllCollection:item() 方法
slug: Web/API/HTMLAllCollection/item
l10n:
sourceCommit: b25d8774aa7bcc6a053e26cf804ad454f51e134b
---

{{APIRef("HTML DOM")}}

{{domxref("HTMLAllCollection")}} 接口的 **`item()`** 方法返回位于集合中指定偏移位置的元素,或其 `id` 或 `name` 属性具有指定值的元素。

## 语法

```js-nolint
item(nameOrIndex)
```

### 参数

- `nameOrIndex`
- : 如果参数是一个整数,或者是一个可以转换为整数的字符串,它表示将要返回的 {{domxref("Element")}} 的位置。元素在 `HTMLAllCollection` 中出现的顺序与它们在文档源中出现的顺序相同。如果参数是一个无法转换为整数的字符串,它将被解释为将要返回的元素的 `name` 或 `id`。

### 返回值

如果 `nameOrIndex` 表示一个索引,`item()` 方法将返回位于指定索引处的 {{domxref("Element")}},如果 `nameOrIndex` 小于零或大于等于集合的长度属性,则返回 `null`。如果 `nameOrIndex` 表示一个名称,`item()` 方法将返回与 {{domxref("HTMLAllCollection/namedItem", "namedItem()")}} 方法相同的值。

## 规范

{{Specifications}}

## 浏览器兼容性

{{Compat}}

## 参见

- {{domxref("HTMLCollection.item()")}}
26 changes: 26 additions & 0 deletions files/zh-cn/web/api/htmlallcollection/length/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
title: HTMLAllCollection:length 属性
slug: Web/API/HTMLAllCollection/length
l10n:
sourceCommit: e8e22a6e6d6455222c8c1a1e1346a149d300ab35
---

{{APIRef("DOM")}}

**`HTMLAllCollection.length`** 属性返回 {{domxref("HTMLAllCollection")}} 中项目的数量。

## 值

表示 `HTMLAllCollection` 中项目数量的整数值。

## 规范

{{Specifications}}

## 浏览器兼容性

{{Compat}}

## 参见

- {{domxref("HTMLCollection.length")}}
33 changes: 33 additions & 0 deletions files/zh-cn/web/api/htmlallcollection/nameditem/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
title: HTMLAllCollection:namedItem() 方法
slug: Web/API/HTMLAllCollection/namedItem
l10n:
sourceCommit: b71d118ffc6d72b77efad9661110fcc9ede464eb
---

{{APIRef("DOM")}}

{{domxref("HTMLAllCollection")}} 接口的 **`namedItem()`** 方法返回集合中第一个其 `id` 或 `name` 属性与给定的字符串名称匹配的 {{domxref("Element")}},如果没有匹配的元素,则返回 `null`。

## 语法

```js-nolint
namedItem(name)
```

### 参数

- `name`
- : 一个表示我们正在查找的元素的 `id` 或 `name` 属性值的字符串。

### 返回值

{{domxref("HTMLAllCollection")}} 中第一个匹配 `name` 的 {{domxref("Element")}},如果没有,则返回 [`null`](/zh-CN/docs/Web/JavaScript/Reference/Operators/null)。

## 规范

{{Specifications}}

## 浏览器兼容性

{{Compat}}