资讯专栏INFORMATION COLUMN

javaScript 高级程序设计笔记——DOM

JinB / 3362人阅读

摘要:一类型在中,所有的节点类型都继承自类型。包含文档中所有带特性的元素包含文档中所有的元素包含文档中所有的元素包含文档中所有带特性的元素一致性检测因为分为多个级别,也包含多个部分,因此检测浏览器实现了的哪些部分就十分必要。

DOM是针对HTML和XML文档的一个API
DOM描绘了一个层次化的节点树,允许开发人员轻松自如地添加、删除、替换、修改页面的某一部分

一、节点层次

DOM将HTML文档描绘成一个层次化的节点树,HTML文档中的任何内容都可以通过树中的一个节点来表示:

HTML元素表示成元素节点

HTML属性表示成属性节点

注释表示成注释节点
......

DOM中共有12种节点类型。

(一) Node类型

在javascript中,所有的节点类型都继承自Node类型。Node类型定义了节点类型的一些基本属性和方法,这些属性和方法被所有的节点共享。

1、基本属性

(1)nodeType:表明节点的类型

元素节点.nodeType = 1

文本节点.nodeType = 3

(2)nodeName:节点的名称

元素节点.nodeName = 元素的标签名(大写)

(3)nodeValue:节点的值

元素节点.nodeValue = null

2、节点关系

文档中所有的节点之间存在着各种关系,节点间的关系可以用传统的家族关系来描述。
(1)childNodes属性

作用:返回节点的所有子节点,这些子节点组成NodeList对象(NodeList对象并不是Array实例)

语法:someNode.childNode

访问保存在NodeList对象中的子节点

someNode.childNodes[0];

someNode.childNodes.item(0)

(2)parentNode属性

作用:指向文档树中的父节点

包含在childNodes列表中的所有节点都有相同的父节点

(3)firstChild、lastChild属性

分别指向childNodes列表中的第一个和最后一个节点

(4)previousSibling、nextSibling属性

(5)ownerDocument属性

该属性指向整个文档的文档节点

(6)hasChildNodes()方法

当节点包含一个或多个子节点时返回true

3、操作节点

DOM提供了一些操作节点的方法:

(1)添加节点

appendChild():向NodeList列表的末尾添加一个节点,并返回新增的节点

insertBefore(newNode,参照节点):向参照节点的前面插入newNode,并返回新节点

(2)替换节点

replaceChild(新节点,要替换的节点):要替换的节点被新节点替换,并被方法返回

(3)删除节点

removeChild(要删除的节点):删除要删除的节点,并返回要删除的节点

注意:上述四个方法操作的是某个节点的子节点,即这四个方法均需要先取得父节点(parentNode)

4、其他方法

(1)cloneNode(true/false)

作用:复制调用该方法的节点

参数为true时:执行深复制,即复制节点及其整个子节点树

参数为false时:执行浅复制,即只复制该节点本身

复制后的节点及其子节点属于文档,但是它没用父节点

(2)normalize()

作用:处理文档树中的文本节点,该方法会删除空文本节点/或者将相邻的文本节点合并为一个文本节点

(二) Document类型

Document类型可以表示HTML页面或者其他基于XML的文档,其中最常见的是作为HTMLDocument 实例的document对象,该对象表示整个HTML页面。Document节点具有下列特征:

nodeType = 9

nodeName = "#document"

nodeValue = null

parentNode = null

ownerDocument = null

1.文档的子节点

DOM规定Document节点的子节点可以是以下几种:
(1)DocumentType

通常标签看成一个与文档其他部分不同的实体,可以通过doctype属性访问该标签

语法:var doctype = document.doctype

因为不同的浏览器对该属性的支持差别很大,所以该属性的用处不大

(2)Element
有两个内置属性可以快速地访问Document节点的子节点:

documentElement:访问文档的元素 //var html = document.documentElement

body:访问元素 //var body = document.body

(3)Comment

按照定义,出现在元素外部的注释应该算是文档的子节点,然而不同的浏览器对这些外部注释的解析不同,故通常不在元素外部使用注释。

(4)ProcessingInstruction

2、文档信息

document对象作为HTMLDocument的一个实例,还有几个标准Document对象没有的属性:

title:获取元素中的文本,即当前页面的标题 //document.title</p> <p>URL:返回地址栏中的URL</p> <p>domain:页面的域名</p> <p>referrer:返回链接到当前页面的URL</p> <b>3、查找元素</b> <p><strong>(1)getElementById()</strong></p> <p><strong>(2)getElementsByTagName()</strong></p> <p>该方法返回一个HTMLCollection对象,作为一个“动态”集合,该对象与NodeList很相似</p> <p> <p>访问HTMLCollection对象中元素的方法: <br>(假设, var images=document.getElementsByTagName("img");)</p> <p>images[0]</p> <p>images.item(0)</p> <p>images.namedItem("myImage")=images["myImage"] //获取的图片</p> </p> <p><strong>(3)getElementsByName()</strong></p> <b>4、特殊集合</b> <p>为了方便访问文档的常用部分,document对象还提供了一些特殊的集合,这些集合都是HTMLCollection对象。</p> <p>document.anchors:包含文档中所有带name特性的<a>元素</p> <p>document.forms:包含文档中所有的<form>元素</p> <p>document.images:包含文档中所有的<img>元素</p> <p>document.links:包含文档中所有带href特性的<a>元素</p> <b>5、DOM一致性检测</b> <p><strong>因为DOM分为多个级别,也包含多个部分,因此检测浏览器实现了DOM的哪些部分就十分必要。</strong></p> <p>document.implementation属性就可以实现检测浏览器对DOM版本的支持情况</p> <p>document.implementation.hasFeature(要检测的DOM功能名称,版本号),若浏览器支持给定名称和版本的功能,该方法返回true。</p> </div> <div class="mt-64 tags-seach" > <div class="tags-info"> <a style="width:120px;" title="云服务器" href="https://www.ucloud.cn/site/active/kuaijiesale.html?ytag=seo">云服务器</a> <a style="width:120px;" title="GPU云服务器" href="https://www.ucloud.cn/site/product/gpu.html">GPU云服务器</a> <a style="width:120px;" title="高级程序设计-笔记" href="https://www.ucloud.cn/yun/tag/gaojichengxusheji-biji/">高级程序设计-笔记</a> <a style="width:120px;" title="高级javascript程序设计" href="https://www.ucloud.cn/yun/tag/gaojijavascriptchengxusheji/">高级javascript程序设计</a> <a style="width:120px;" title="javascript高级程序设计" href="https://www.ucloud.cn/yun/tag/javascriptgaojichengxusheji/">javascript高级程序设计</a> <a style="width:120px;" title="javascript高级程序" href="https://www.ucloud.cn/yun/tag/javascriptgaojichengxu/">javascript高级程序</a> </div> </div> <div class="entry-copyright mb-30"> <p class="mb-15"> 文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。</p> <p>转载请注明本文地址:https://www.ucloud.cn/yun/85093.html</p> </div> <ul class="pre-next-page"> <li class="ellipsis"><a class="hpf" href="https://www.ucloud.cn/yun/85092.html">上一篇:VueJS源码学习——工具类函数实现</a></li> <li class="ellipsis"><a class="hpf" href="https://www.ucloud.cn/yun/85094.html">下一篇:从实现角度分析js原型链</a></li> </ul> </div> <div class="about_topicone-mid"> <h3 class="top-com-title mb-0"><span data-id="0">相关文章</span></h3> <ul class="com_white-left-mid atricle-list-box"> <li> <div class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/89363.html"><b>001-读书<em>笔记</em>-<em>JavaScript</em><em>高级</em><em><em>程序</em><em>设计</em></em> <em>JavaScript</em>简介</b></a></h2> <p class="ellipsis2 good">摘要:由于计算机的国际化,组织的标准牵涉到很多其他国家,因此组织决定改名表明其国际性。规范由万维网联盟制定。级标准级标准是不存在的,级一般指的是最初支持的。 这篇笔记的内容对应的是《JavaScript高级程序设计(第三版)》中的第一章。 1.ECMA 和 ECMA-262 ECMA 是欧洲计算机制造商协会的缩写,全程是 European Computer Manufacturers Ass...</p> <div class="com_white-left-info"> <div class="com_white-left-infol"> <a href="https://www.ucloud.cn/yun/u-1367.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/13/small_000001367.jpg" alt=""><span class="layui-hide64">masturbator</span></a> <time datetime="">2019-08-21 17:18</time> <span><i class="fa fa-commenting"></i>评论0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/78146.html"><b>《<em>JavaScript</em><em>高级</em><em><em>程序</em><em>设计</em></em>》<em>笔记</em>:<em>JavaScript</em>简介(一)</b></a></h2> <p class="ellipsis2 good">摘要:实现一个完整的实现应该由下列三个不同的部分组成核心文档对象模型浏览器对象模型文档对象模型是针对但经过扩展用于的应用程序编程接口。级别级由两个模块组成核心和。其中,核心规定是如何映射基于的文档结构,以便简化对文档中任意部分的访问和操作。 javascript从一个简单的输入验证器发展成为一门强大的编程语言,完全出乎人们的意料。 javascript实现一个完整的javascript实现应...</p> <div class="com_white-left-info"> <div class="com_white-left-infol"> <a href="https://www.ucloud.cn/yun/u-1006.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/10/small_000001006.jpg" alt=""><span class="layui-hide64">Edison</span></a> <time datetime="">2019-08-19 14:51</time> <span><i class="fa fa-commenting"></i>评论0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/92112.html"><b><em>JavaScript</em><em>高级</em><em><em>程序</em><em>设计</em></em>学习<em>笔记</em>一(<em>JavaScript</em>简介)</b></a></h2> <p class="ellipsis2 good">摘要:在上百种语言中算是命好的一个,还有就是最近纳入高考体系的。由以下三个部分构成。就是对实现该标准规定的各个方面内容的语言的描述。是针对但经过扩展的用于的应用程序编程接口。将页面映射为由节点构成的树状结构。 JavaScript的历史这里就不再赘述了,当然JavaScript的历史还是比较有意思的。在上百种语言中JavaScript算是‘命’好的一个,还有就是最近纳入高考体系的python...</p> <div class="com_white-left-info"> <div class="com_white-left-infol"> <a href="https://www.ucloud.cn/yun/u-1602.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/16/small_000001602.jpg" alt=""><span class="layui-hide64">supernavy</span></a> <time datetime="">2019-08-22 11:17</time> <span><i class="fa fa-commenting"></i>评论0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/78450.html"><b>《<em>JavaScript</em><em>高级</em><em><em>程序</em><em>设计</em></em>》学习<em>笔记</em>:<em>JavaScript</em>中的事件流和事件处理<em>程序</em></b></a></h2> <p class="ellipsis2 good">摘要:可以使用侦听器或处理程序来预订事件,以便事件发生时执行相应的代码。响应某个事件的函数称为事件处理程序或事件侦听器。可以删除通过级方法指定的事件处理程序。 JavaScript和HTML之间的交互是通过事件实现的。 事件:文档或浏览器窗口中发生的一些特定的交互瞬间。 可以使用侦听器(或处理程序来预订事件),以便事件发生时执行相应的代码。 1. 事件流 事件流:从页面中接收事件的顺序。 ...</p> <div class="com_white-left-info"> <div class="com_white-left-infol"> <a href="https://www.ucloud.cn/yun/u-1219.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/12/small_000001219.jpg" alt=""><span class="layui-hide64">Rocko</span></a> <time datetime="">2019-08-19 17:21</time> <span><i class="fa fa-commenting"></i>评论0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/85401.html"><b>《<em>JavaScript</em><em>高级</em><em><em>程序</em><em>设计</em></em>》<em>笔记</em>:<em>DOM</em>扩展(十一)</b></a></h2> <p class="ellipsis2 good">摘要:取得所有类中包含和的元素。类名的先后顺序无所谓取得为的元素中带有类名的所有元素焦点管理也添加了辅助管理焦点的功能。首先就是属性,这个属性始终会引用中当前获得了焦点的元素。另外就是新增了方法,这个方法用于确定文档是否获得了焦点。 选择符API querySelector()方法 // 取得body元素 var tbody = document.querySelector(body); ...</p> <div class="com_white-left-info"> <div class="com_white-left-infol"> <a href="https://www.ucloud.cn/yun/u-1682.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/16/small_000001682.jpg" alt=""><span class="layui-hide64">BenCHou</span></a> <time datetime="">2019-08-21 10:22</time> <span><i class="fa fa-commenting"></i>评论0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> </ul> </div> <div class="topicone-box-wangeditor"> <h3 class="top-com-title mb-64"><span>发表评论</span></h3> <div class="xcp-publish-main flex_box_zd"> <div class="unlogin-pinglun-box"> <a href="javascript:login()" class="grad">登陆后可评论</a> </div> </div> </div> <div class="site-box-content"> <div class="site-content-title"> <h3 class="top-com-title mb-64"><span>0条评论</span></h3> </div> <div class="pages"></ul></div> </div> </div> <div class="layui-col-md4 layui-col-lg3 com_white-right site-wrap-right"> <div class=""> <div class="com_layuiright-box user-msgbox"> <a href="https://www.ucloud.cn/yun/u-1492.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/14/small_000001492.jpg" alt=""></a> <h3><a href="https://www.ucloud.cn/yun/u-1492.html" rel="nofollow">JinB</a></h3> <h6>男<span>|</span>高级讲师</h6> <div class="flex_box_zd user-msgbox-atten"> <a href="javascript:attentto_user(1492)" id="attenttouser_1492" class="grad follow-btn notfollow attention">我要关注</a> <a href="javascript:login()" title="发私信" >我要私信</a> </div> <div class="user-msgbox-list flex_box_zd"> <h3 class="hpf">TA的文章</h3> <a href="https://www.ucloud.cn/yun/ut-1492.html" class="box_hxjz">阅读更多</a> </div> <ul class="user-msgbox-ul"> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/119624.html">2021-09-08</a></h3> <p>阅读 2652<span>·</span>2021-09-09 09:33</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/116944.html">前端每日实战:84# 视频演示如何用纯 CSS 创作一个极品飞车 loader</a></h3> <p>阅读 2809<span>·</span>2019-08-30 15:54</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/115964.html">css基础</a></h3> <p>阅读 2867<span>·</span>2019-08-30 14:21</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/114198.html">[无心插柳]简单实现常用的表单校验函数</a></h3> <p>阅读 2356<span>·</span>2019-08-29 17:15</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/113605.html">CSS自定义属性 —— 别说你懂CSS相对单位</a></h3> <p>阅读 3579<span>·</span>2019-08-29 16:13</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/113068.html">【前端Talkking】CSS系列-红月亮、蓝月亮、X月亮,还是渐变月亮好</a></h3> <p>阅读 2757<span>·</span>2019-08-29 14:21</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/108806.html">js数组笔记</a></h3> <p>阅读 3421<span>·</span>2019-08-26 13:25</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/108294.html">js异步编程-async,await以及不可以取代的Promise</a></h3> <p>阅读 2027<span>·</span>2019-08-26 12:14</p></li> </ul> </div> <!-- 文章详情右侧广告--> <div class="com_layuiright-box"> <h6 class="top-com-title"><span>最新活动</span></h6> <div class="com_adbox"> <div class="layui-carousel" id="right-item"> <div carousel-item> <div> <a href="https://www.ucloud.cn/site/active/kuaijiesale.html?ytag=seo" rel="nofollow"> <img src="https://www.ucloud.cn/yun/data/attach/240625/2rTjEHmi.png" alt="云服务器"> </a> </div> <div> <a href="https://www.ucloud.cn/site/product/gpu.html" rel="nofollow"> <img src="https://www.ucloud.cn/yun/data/attach/240807/7NjZjdrd.png" alt="GPU云服务器"> </a> </div> </div> </div> </div> <!-- banner结束 --> <div class="adhtml"> </div> <script> $(function(){ $.ajax({ type: "GET", url:"https://www.ucloud.cn/yun/ad/getad/1.html", cache: false, success: function(text){ $(".adhtml").html(text); } }); }) </script> </div> </div> </div> </div> </div> </section> <!-- wap拉出按钮 --> <div class="site-tree-mobile layui-hide"> <i class="layui-icon layui-icon-spread-left"></i> </div> <!-- wap遮罩层 --> <div class="site-mobile-shade"></div> <!--付费阅读 --> <div id="payread"> <div class="layui-form-item">阅读需要支付1元查看</div> <div class="layui-form-item"><button class="btn-right">支付并查看</button></div> </div> <script> var prei=0; $(".site-seo-depict pre").each(function(){ var html=$(this).html().replace("<code>","").replace("</code>","").replace('<code class="javascript hljs" codemark="1">',''); $(this).attr('data-clipboard-text',html).attr("id","pre"+prei); $(this).html("").append("<code>"+html+"</code>"); prei++; }) $(".site-seo-depict img").each(function(){ if($(this).attr("src").indexOf('data:image/svg+xml')!= -1){ $(this).remove(); } }) $("LINK[href*='style-49037e4d27.css']").remove(); $("LINK[href*='markdown_views-d7a94ec6ab.css']").remove(); layui.use(['jquery', 'layer','code'], function(){ $("pre").attr("class","layui-code"); $("pre").attr("lay-title",""); $("pre").attr("lay-skin",""); layui.code(); $(".layui-code-h3 a").attr("class","copycode").html("复制代码 ").attr("onclick","copycode(this)"); }); function copycode(target){ var id=$(target).parent().parent().attr("id"); var clipboard = new ClipboardJS("#"+id); clipboard.on('success', function(e) { e.clearSelection(); alert("复制成功") }); clipboard.on('error', function(e) { alert("复制失败") }); } //$(".site-seo-depict").html($(".site-seo-depict").html().slice(0, -5)); </script> <link rel="stylesheet" type="text/css" href="https://www.ucloud.cn/yun/static/js/neweditor/code/styles/tomorrow-night-eighties.css"> <script src="https://www.ucloud.cn/yun/static/js/neweditor/code/highlight.pack.js" type="text/javascript"></script> <script src="https://www.ucloud.cn/yun/static/js/clipboard.js"></script> <script>hljs.initHighlightingOnLoad();</script> <script> function setcode(){ var _html=''; document.querySelectorAll('pre code').forEach((block) => { var _tmptext=$.trim($(block).text()); if(_tmptext!=''){ _html=_html+_tmptext; console.log(_html); } }); } </script> <script> function payread(){ layer.open({ type: 1, title:"付费阅读", shadeClose: true, content: $('#payread') }); } // 举报 function jupao_tip(){ layer.open({ type: 1, title:false, shadeClose: true, content: $('#jubao') }); } $(".getcommentlist").click(function(){ var _id=$(this).attr("dataid"); var _tid=$(this).attr("datatid"); $("#articlecommentlist"+_id).toggleClass("hide"); var flag=$("#articlecommentlist"+_id).attr("dataflag"); if(flag==1){ flag=0; }else{ flag=1; //加载评论 loadarticlecommentlist(_id,_tid); } $("#articlecommentlist"+_id).attr("dataflag",flag); }) $(".add-comment-btn").click(function(){ var _id=$(this).attr("dataid"); $(".formcomment"+_id).toggleClass("hide"); }) $(".btn-sendartcomment").click(function(){ var _aid=$(this).attr("dataid"); var _tid=$(this).attr("datatid"); var _content=$.trim($(".commenttext"+_aid).val()); if(_content==''){ alert("评论内容不能为空"); return false; } var touid=$("#btnsendcomment"+_aid).attr("touid"); if(touid==null){ touid=0; } addarticlecomment(_tid,_aid,_content,touid); }) $(".button_agree").click(function(){ var supportobj = $(this); var tid = $(this).attr("id"); $.ajax({ type: "GET", url:"https://www.ucloud.cn/yun/index.php?topic/ajaxhassupport/" + tid, cache: false, success: function(hassupport){ if (hassupport != '1'){ $.ajax({ type: "GET", cache:false, url: "https://www.ucloud.cn/yun/index.php?topic/ajaxaddsupport/" + tid, success: function(comments) { supportobj.find("span").html(comments+"人赞"); } }); }else{ alert("您已经赞过"); } } }); }); function attenquestion(_tid,_rs){ $.ajax({ //提交数据的类型 POST GET type:"POST", //提交的网址 url:"https://www.ucloud.cn/yun/favorite/topicadd.html", //提交的数据 data:{tid:_tid,rs:_rs}, //返回数据的格式 datatype: "json",//"xml", "html", "script", "json", "jsonp", "text". //在请求之前调用的函数 beforeSend:function(){}, //成功返回之后调用的函数 success:function(data){ var data=eval("("+data+")"); console.log(data) if(data.code==2000){ layer.msg(data.msg,function(){ if(data.rs==1){ //取消收藏 $(".layui-layer-tips").attr("data-tips","收藏文章"); $(".layui-layer-tips").html('<i class="fa fa-heart-o"></i>'); } if(data.rs==0){ //收藏成功 $(".layui-layer-tips").attr("data-tips","已收藏文章"); $(".layui-layer-tips").html('<i class="fa fa-heart"></i>') } }) }else{ layer.msg(data.msg) } } , //调用执行后调用的函数 complete: function(XMLHttpRequest, textStatus){ postadopt=true; }, //调用出错执行的函数 error: function(){ //请求出错处理 postadopt=false; } }); } </script> <footer> <div class="layui-container"> <div class="flex_box_zd"> <div class="left-footer"> <h6><a href="https://www.ucloud.cn/"><img src="https://www.ucloud.cn/yun/static/theme/ukd//images/logo.png" alt="UCloud (优刻得科技股份有限公司)"></a></h6> <p>UCloud (优刻得科技股份有限公司)是中立、安全的云计算服务平台,坚持中立,不涉足客户业务领域。公司自主研发IaaS、PaaS、大数据流通平台、AI服务平台等一系列云计算产品,并深入了解互联网、传统企业在不同场景下的业务需求,提供公有云、混合云、私有云、专有云在内的综合性行业解决方案。</p> </div> <div class="right-footer layui-hidemd"> <ul class="flex_box_zd"> <li> <h6>UCloud与云服务</h6> <p><a href="https://www.ucloud.cn/site/about/intro/">公司介绍</a></p> <p><a href="https://zhaopin.ucloud.cn/" >加入我们</a></p> <p><a href="https://www.ucloud.cn/site/ucan/onlineclass/">UCan线上公开课</a></p> <p><a href="https://www.ucloud.cn/site/solutions.html" >行业解决方案</a></p> <p><a href="https://www.ucloud.cn/site/pro-notice/">产品动态</a></p> </li> <li> <h6>友情链接</h6> <p><a href="https://www.compshare.cn/?ytag=seo">GPU算力平台</a></p> <p><a href="https://www.ucloudstack.com/?ytag=seo">UCloud私有云</a></p> <p><a href="https://www.surfercloud.com/">SurferCloud</a></p> <p><a href="https://www.uwin-link.com/">工厂仿真软件</a></p> <p><a href="https://pinex.it/">Pinex</a></p> <p><a href="https://www.picpik.ai/zh">AI绘画</a></p> </li> <li> <h6>社区栏目</h6> <p><a href="https://www.ucloud.cn/yun/column/index.html">专栏文章</a></p> <p><a href="https://www.ucloud.cn/yun/udata/">专题地图</a></p> </li> <li> <h6>常见问题</h6> <p><a href="https://www.ucloud.cn/site/ucsafe/notice.html" >安全中心</a></p> <p><a href="https://www.ucloud.cn/site/about/news/recent/" >新闻动态</a></p> <p><a href="https://www.ucloud.cn/site/about/news/report/">媒体动态</a></p> <p><a href="https://www.ucloud.cn/site/cases.html">客户案例</a></p> <p><a href="https://www.ucloud.cn/site/notice/">公告</a></p> </li> <li> <span><img src="https://static.ucloud.cn/7a4b6983f4b94bcb97380adc5d073865.png" alt="优刻得"></span> <p>扫扫了解更多</p></div> </div> <div class="copyright">Copyright © 2012-2023 UCloud 优刻得科技股份有限公司<i>|</i><a rel="nofollow" href="http://beian.miit.gov.cn/">沪公网安备 31011002000058号</a><i>|</i><a rel="nofollow" href="http://beian.miit.gov.cn/"></a> 沪ICP备12020087号-3</a><i>|</i> <script type="text/javascript" src="https://gyfk12.kuaishang.cn/bs/ks.j?cI=197688&fI=125915" charset="utf-8"></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?290c2650b305fc9fff0dbdcafe48b59d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-DZSMXQ3P9N"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-DZSMXQ3P9N'); </script> <script> (function(){ var el = document.createElement("script"); el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?99f50ea166557aed914eb4a66a7a70a4709cbb98a54ecb576877d99556fb4bfc3d72cd14f8a76432df3935ab77ec54f830517b3cb210f7fd334f50ccb772134a"; el.id = "ttzz"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(el, s); })(window) </script></div> </div> </footer> </body> <script src="https://www.ucloud.cn/yun/static/theme/ukd/js/common.js"></script> <<script type="text/javascript"> $(".site-seo-depict *,.site-content-answer-body *,.site-body-depict *").css("max-width","100%"); </script> </html>