Class HorizontalRule
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
详细文档
copy()
返回当前元素的脱离深层副本。
系统还会复制该元素中的所有子元素。新元素没有父元素。
返回
HorizontalRule
- 新副本。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
getAttributes()
检索元素的属性。
结果是一个对象,其中包含每个有效元素属性的属性,每个属性名称对应于 DocumentApp.Attribute
枚举中的项。
const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();
// Append a styled paragraph.
const par = body.appendParagraph('A bold, italicized paragraph.');
par.setBold(true);
par.setItalic(true);
// Retrieve the paragraph's attributes.
const atts = par.getAttributes();
// Log the paragraph attributes.
for (const att in atts) {
Logger.log(`${att}:${atts[att]}`);
}
返回
Object
- 元素的属性。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
getNextSibling()
检索元素的下一个同级元素。
下一个同胞兄弟具有相同的父元素,并且位于当前元素之后。
返回
Element
- 下一个同级元素。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
getParent()
检索元素的父元素。
父元素包含当前元素。
返回
ContainerElement
- 父元素。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
getPreviousSibling()
检索元素的上一个同级元素。
上一个同胞兄弟具有相同的父元素,并且位于当前元素之前。
返回
Element
- 上一个同级元素。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
getType()
检索元素的 ElementType
。
使用 getType()
确定给定元素的确切类型。
const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();
// Obtain the first element in the active tab's body.
const firstChild = body.getChild(0);
// Use getType() to determine the element's type.
if (firstChild.getType() === DocumentApp.ElementType.PARAGRAPH) {
Logger.log('The first element is a paragraph.');
} else {
Logger.log('The first element is not a paragraph.');
}
返回
ElementType
- 元素类型。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
isAtDocumentEnd()
确定元素是否位于 Document
的末尾。
返回
Boolean
- 元素是否位于标签页的末尾。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
removeFromParent()
从其父元素中移除元素。
const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();
// Remove all images in the active tab's body.
const imgs = body.getImages();
for (let i = 0; i < imgs.length; i++) {
imgs[i].removeFromParent();
}
返回
HorizontalRule
- 移除的元素。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
setAttributes(attributes)
设置元素的属性。
指定的 attributes 参数必须是对象,其中每个属性名称都是 DocumentApp.Attribute
枚举中的项,每个属性值都是要应用的新值。
const doc = DocumentApp.getActiveDocument();
const documentTab = doc.getActiveTab().asDocumentTab();
const body = documentTab.getBody();
// Define a custom paragraph style.
const style = {};
style[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] =
DocumentApp.HorizontalAlignment.RIGHT;
style[DocumentApp.Attribute.FONT_FAMILY] = 'Calibri';
style[DocumentApp.Attribute.FONT_SIZE] = 18;
style[DocumentApp.Attribute.BOLD] = true;
// Append a plain paragraph.
const par = body.appendParagraph('A paragraph with custom style.');
// Apply the custom style.
par.setAttributes(style);
参数
名称 | 类型 | 说明 |
attributes | Object | 元素的属性。 |
返回
HorizontalRule
- 当前元素。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-26。
[null,null,["最后更新时间 (UTC):2025-07-26。"],[[["\u003cp\u003e\u003ccode\u003eHorizontalRule\u003c/code\u003e represents a horizontal line in a Google Doc and can be placed within a list item or paragraph but cannot contain other elements.\u003c/p\u003e\n"],["\u003cp\u003eIt provides methods for copying, manipulating attributes, navigating to sibling/parent elements, removing from the document, and checking its position.\u003c/p\u003e\n"],["\u003cp\u003eMethods like \u003ccode\u003ecopy()\u003c/code\u003e, \u003ccode\u003egetAttributes()\u003c/code\u003e, and \u003ccode\u003esetAttributes()\u003c/code\u003e allow for creating copies of the element and modifying its properties.\u003c/p\u003e\n"],["\u003cp\u003eYou can use \u003ccode\u003egetNextSibling()\u003c/code\u003e, \u003ccode\u003egetPreviousSibling()\u003c/code\u003e, and \u003ccode\u003egetParent()\u003c/code\u003e to traverse the document structure relative to the \u003ccode\u003eHorizontalRule\u003c/code\u003e element.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eremoveFromParent()\u003c/code\u003e enables removing the horizontal rule from its parent container, and \u003ccode\u003eisAtDocumentEnd()\u003c/code\u003e checks its location within the document.\u003c/p\u003e\n"]]],[],null,["# Class HorizontalRule\n\nHorizontalRule\n\nAn element representing an horizontal rule. A `Horizontal``Rule` can be contained within a\n[ListItem](/apps-script/reference/document/list-item) or [Paragraph](/apps-script/reference/document/paragraph), but cannot itself contain any other element. For more\ninformation on document structure, see the [guide to extending Google Docs](/apps-script/guides/docs#structure_of_a_document). \n\n### Methods\n\n| Method | Return type | Brief description |\n|-----------------------------------------------------|-----------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|\n| [copy()](#copy()) | [HorizontalRule](#) | Returns a detached, deep copy of the current element. |\n| [getAttributes()](#getAttributes()) | `Object` | Retrieves the element's attributes. |\n| [getNextSibling()](#getNextSibling()) | [Element](/apps-script/reference/document/element) | Retrieves the element's next sibling element. |\n| [getParent()](#getParent()) | [ContainerElement](/apps-script/reference/document/container-element) | Retrieves the element's parent element. |\n| [getPreviousSibling()](#getPreviousSibling()) | [Element](/apps-script/reference/document/element) | Retrieves the element's previous sibling element. |\n| [getType()](#getType()) | [ElementType](/apps-script/reference/document/element-type) | Retrieves the element's [ElementType](/apps-script/reference/document/element-type). |\n| [isAtDocumentEnd()](#isAtDocumentEnd()) | `Boolean` | Determines whether the element is at the end of the [Document](/apps-script/reference/document/document). |\n| [removeFromParent()](#removeFromParent()) | [HorizontalRule](#) | Removes the element from its parent. |\n| [setAttributes(attributes)](#setAttributes(Object)) | [HorizontalRule](#) | Sets the element's attributes. |\n\nDetailed documentation\n----------------------\n\n### `copy()`\n\nReturns a detached, deep copy of the current element.\n\nAny child elements present in the element are also copied. The new element doesn't have a\nparent.\n\n#### Return\n\n\n[HorizontalRule](#) --- The new copy.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `get``Attributes()`\n\nRetrieves the element's attributes.\n\nThe result is an object containing a property for each valid element attribute where each\nproperty name corresponds to an item in the `Document``App.Attribute` enumeration.\n\n```javascript\nconst doc = DocumentApp.getActiveDocument();\nconst documentTab = doc.getActiveTab().asDocumentTab();\nconst body = documentTab.getBody();\n\n// Append a styled paragraph.\nconst par = body.appendParagraph('A bold, italicized paragraph.');\npar.setBold(true);\npar.setItalic(true);\n\n// Retrieve the paragraph's attributes.\nconst atts = par.getAttributes();\n\n// Log the paragraph attributes.\nfor (const att in atts) {\n Logger.log(`${att}:${atts[att]}`);\n}\n```\n\n#### Return\n\n\n`Object` --- The element's attributes.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `get``Next``Sibling()`\n\nRetrieves the element's next sibling element.\n\nThe next sibling has the same parent and follows the current element.\n\n#### Return\n\n\n[Element](/apps-script/reference/document/element) --- The next sibling element.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `get``Parent()`\n\nRetrieves the element's parent element.\n\nThe parent element contains the current element.\n\n#### Return\n\n\n[ContainerElement](/apps-script/reference/document/container-element) --- The parent element.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `get``Previous``Sibling()`\n\nRetrieves the element's previous sibling element.\n\nThe previous sibling has the same parent and precedes the current element.\n\n#### Return\n\n\n[Element](/apps-script/reference/document/element) --- The previous sibling element.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `get``Type()`\n\nRetrieves the element's [ElementType](/apps-script/reference/document/element-type).\n\nUse `get``Type()` to determine the exact type of a given element.\n\n```javascript\nconst doc = DocumentApp.getActiveDocument();\nconst documentTab = doc.getActiveTab().asDocumentTab();\nconst body = documentTab.getBody();\n\n// Obtain the first element in the active tab's body.\n\nconst firstChild = body.getChild(0);\n\n// Use getType() to determine the element's type.\nif (firstChild.getType() === DocumentApp.ElementType.PARAGRAPH) {\n Logger.log('The first element is a paragraph.');\n} else {\n Logger.log('The first element is not a paragraph.');\n}\n```\n\n#### Return\n\n\n[ElementType](/apps-script/reference/document/element-type) --- The element type.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `is``At``Document``End()`\n\nDetermines whether the element is at the end of the [Document](/apps-script/reference/document/document).\n\n#### Return\n\n\n`Boolean` --- Whether the element is at the end of the tab.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `remove``From``Parent()`\n\nRemoves the element from its parent.\n\n```javascript\nconst doc = DocumentApp.getActiveDocument();\nconst documentTab = doc.getActiveTab().asDocumentTab();\nconst body = documentTab.getBody();\n\n// Remove all images in the active tab's body.\nconst imgs = body.getImages();\nfor (let i = 0; i \u003c imgs.length; i++) {\n imgs[i].removeFromParent();\n}\n```\n\n#### Return\n\n\n[HorizontalRule](#) --- The removed element.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `set``Attributes(attributes)`\n\nSets the element's attributes.\n\nThe specified attributes parameter must be an object where each property name is an item in\nthe `Document``App.Attribute` enumeration and each property value is the new value to be\napplied.\n\n```javascript\nconst doc = DocumentApp.getActiveDocument();\nconst documentTab = doc.getActiveTab().asDocumentTab();\nconst body = documentTab.getBody();\n\n// Define a custom paragraph style.\nconst style = {};\nstyle[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] =\n DocumentApp.HorizontalAlignment.RIGHT;\nstyle[DocumentApp.Attribute.FONT_FAMILY] = 'Calibri';\nstyle[DocumentApp.Attribute.FONT_SIZE] = 18;\nstyle[DocumentApp.Attribute.BOLD] = true;\n\n// Append a plain paragraph.\nconst par = body.appendParagraph('A paragraph with custom style.');\n\n// Apply the custom style.\npar.setAttributes(style);\n```\n\n#### Parameters\n\n| Name | Type | Description |\n|--------------|----------|---------------------------|\n| `attributes` | `Object` | The element's attributes. |\n\n#### Return\n\n\n[HorizontalRule](#) --- The current element.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`"]]