【前端】JavaScript DOM API

DOM API

Document Object Model

文档对象模型

Application Programming Interface

应用程序编程接口

可以用来操控网页的页面结构

document

代表网页的一个对象 名为 document

这个 document 对象中有许多函数

这些函数就是 api 接口(工具的意思)

可以用来修改

  • 网页内容
  • 网页结构
  • 网页样式

DOM 树

文档

一个页面就是一个 文档

使用 document 表示

元素

页面中所有的标签都称为 元素

使用 element 表示

节点

网页中所有的内容都可以称为 节点

标签节点、注释节点、文本节点、属性节点......

使用 node 表示

获取元素

querySelector

let element = document.querySelector("选择器");

选取一个标签

返回一个标签对象

 querySelectorAll

let elements = document.querySelectorAll("选择器");

选取所有符合的标签

返回一个标签对象列表

事件

事件源

哪个元素触发的

事件类型

是点击 选中 还是修改

事件处理程序 

进一步如何处理

<button id="btn">点我一下</button>

<script>

    let btn = document.querySelector('#btn');

    btn.onclick = function () {

        alert("hello world");

    }

</script>
  • 事件源  btn 按钮
  • 事件类型  点击
  • 事件处理程序  匿名函数  function

btn.onclick = function()

这个操作称为

注册事件 / 绑定事件

操作元素

获取 / 修改元素内容

innerText

Element.innerText

表示一个节点及其后代的“渲染”文本内容

// 读操作
let renderedText = HTMLElement.innerText;

// 写操作
HTMLElement.innerText = string;

innerHTML

Element.innerHTML

设置或获取 HTML 语法表示的元素后代

// 读操作
let content = element.innerHTML;

// 写操作
element.innerHTML = htmlString;

innerHTML 与 innerText 相比

不仅可以修改文本,还能修改页面结构

获取 / 修改元素属性

查看 Element 对象中的属性

<img src="female.jpg" alt="女性" title="女孩">

<script>

    var img = document.querySelector('img');
    console.dir(img);

</script>

可以通过 JavaScript

来直接修改这些属性

img.onclick = function () {
    if (img.src.indexOf("female.png") !== -1) {
        img.src = "../img/male.png";
        img.alt = "男性";
        img.title = "男孩";
    } else {
        img.src = "../img/female.png";
        img.alt = "女性";
        img.title = "女孩";
    }
}

获取 / 修改表单元素属性

表单

主要是指 input 标签

以下属性都可以通过 DOM 来修改

  • value:input 的值
  • type:input 的类型
  • checked:复选框默认选择
  • selected:下拉框选默认选择

获取 / 修改样式属性

行内样式操作

element.style.属性名 = 属性值;
element.style.cssText = 属性名 + 属性值;

类名样式操作

element.className = CSS 类名;

操作节点

  • 创建元素节点
  • 把元素节点插入到 dom 树中

创建节点

createElement

创造元素节点

options 参数可不填

var element = document.createElement(tagName, options);

createTextNode

创建文本节点

var element = document.createTextNode(文本);

createComment

创建注释节点

var element = document.createComment(注释);

createAttribute

创建属性节点

var element = document.createAttribute(属性);

插入节点

appendChild

将节点插入到指定节点的最后一个孩子之后

element.appendChild(child);

insertBefore

将节点插入到指定节点之前

parentNode.insertBefore(newNode, referenceNode);
  • parentNode 新插入节点的父节点
  • newNode 用于插入的节点
  • referenceNode newNode 将要插在这个节点之前

删除节点

removeChild

element.removeChild(child);
  • child 为待删除节点
  • element 为 child 的父节点
  • 返回值为该被删除节点
  • 被删除节点只是从 dom 树被删除了  但是仍然在内存中  可以随时加入到 dom 树的其他位置
  • 如果上例中的 child 节点不是 element 节点的子节点  则该方法会抛出异常
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iText是一个开源的Java库,用于创建和操作PDF文档。它提供了一种简单而强大的方式来创建,处理和验证PDF文档。iText的最新版本是iText 7,它提供了Document API,用于创建和管理PDF文档。 iText Document API是一个高级API,它允许用户以更高级别的方式创建PDF文档,而不必处理底层PDF结构。使用Document API,用户可以创建PDF文档并添加页面、段落、文本、表格、图片和其他元素。 以下是一些iText Document API的示例: 1. 创建一个PDF文档并添加一个页面: ``` Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream("example.pdf")); document.open(); document.add(new Paragraph("Hello World!")); document.close(); ``` 2. 添加一个段落和文本到PDF文档: ``` Paragraph paragraph = new Paragraph(); paragraph.add(new Chunk("This is some ")); paragraph.add(new Chunk("bold text").setBold()); paragraph.add(new Chunk(" and some ")); paragraph.add(new Chunk("italic text").setItalic()); document.add(paragraph); ``` 3. 添加一个表格到PDF文档: ``` PdfPTable table = new PdfPTable(3); table.addCell("Header 1"); table.addCell("Header 2"); table.addCell("Header 3"); table.addCell("1.1"); table.addCell("1.2"); table.addCell("1.3"); table.addCell("2.1"); table.addCell("2.2"); table.addCell("2.3"); document.add(table); ``` iText Document API提供了许多其他功能,例如添加图像,创建书签和链接等。用户可以使用iText Document API创建任何类型的PDF文档,包括报告,表格,合同等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值