DOM的理解与 *** 作

DOM的理解与 *** 作,第1张

有一定的JS基础后,就可以进入 dom 环节了,dom使得网页的交互效果得到完美呈现,可以说dom真正打开了网页和用户之间的通道桥梁,日常生活中我们点击鼠标,敲击键盘,甚至于无意间触碰到屏幕(触摸屏),都会或多或少或大或小的得到一些躲藏起来的内容。

打开淘宝,在输入框输入商品时,下拉的推荐商品:

或是当打开某个不想再浏览的网页时,右上角的那个×:

这些大部分都存在DOM的身影。

这里的“DOM”,通常来讲,叫做 DOM 文档对象模型 , 通过 *** 纵DOM,可以随意更改内容,样式,或者增删改查 ,因为网页是在浏览器中显示的,整个浏览器是BOM,所以DOM其实是BOM的一部分,BOM 就是 window对象 ,DOM 就是 document(文档)对象。

如果该元素,是网页的必备元素,而且只能有一个,可以通过document对象直接获取。比如:的src属性

任由我们怎么去修饰的显示,但它本身的路径属性是独有的,所以我们可以直接获取:

更多的时候,我要需要获取网页中的指定元素,这就需要专门的方法来获取了,这里列举几个方法:

getElementById()方法,根据元素的id属性值来获取指定的元素,因为ID的唯一性,使得该方法需要搭配ID选择器使用,如果网页里ID重复时,它会获取第一个:

getElementsByTagName()方法,根据元素的标签名获取所有该元素,该方法获取的是所有该标签的元素,以伪数组的形式呈现:

getElementsByClassName()方法,根据元素的类选择器名称获取所有该元素,该方法获取的途径是标签的类,也就是class属性,由于拥有该属性的标签可能不只一个,所以该方法获得的也是一个伪数组(还有,可以看方法名,凡是带Elements的大多数都是伪数组):

getElementsByName()方法,根据元素的name属性值获取所有该元素,相同的性质,有name属性的标签也不少:

querySelector()方法,根据选择器的名称返回元素,如果有多个元素,只返回第一个元素,这个方法就比较常用了,而且IE这个啥也不咋适配的浏览器现在几乎不咋能见到了,可以多多考虑用他了该方法是  ES6新增,无论是ID 还是class都可以选,但是和上面区别的是选ID时前面要加#号,选class时前面要加“”:

区别于Elements,这里是个单数,所以只会获取一个,要是想获取多个相同的,就用querySelectorAll()吧!querySelectorAll()看这个ALL就知道它是用来选全部的:

最后这俩方法更实用,可以选取CSS几乎所有选择器,而且querySelectorAll()得到的数组数据后还可以使用数组的方法。

*** 作DOM的样式 ,有多种方式:

通过style属性直接设置

通过className属性设置类选择器

也可以通过classList属性添加多个类选择器

*** 作DOM的内容:

innerText属性,用于获取 和 *** 作 DOM的文本内容。

innerHTML属性,用于获取 和 *** 作 DOM的HTML内容:

createElement()方法,用于创建DOM元素:

appendChild()方法,用于在当前DOM元素中添加子元素:

自删 remove()方法,是元素删除自己:

通过父级删除子级 removeChild()方法,是删除元素里面指定的子元素:

没有按照JS语言规范来写当然会报错。

documentgetElementById("") 里边就不要用 +拼接符了,而且后边不是document,而是直接一个点就可以了。

for 循环也有问题。

不要用O=0;这样难以区分,养成好的习惯

var sstab = documentgetElementById('yearr')getElementsByClassName("stab");

for(var i=0;i<sstablength;i++) {

var rowss = sstab[i]rows; //rows 十个什么鬼

for (var k = 0; k < rowsslength; k++){

// for 循环是标准的 for(){} 括号加大括号 你这又少个大括号是什么意思。

}

{

看来你基础还很薄弱,继续加油吧,帮你看 也是在提升自己。

还有养成

consolelog() ,还有 alealert () 检查代码的习惯,因为你写了一大串然后看报错了找死你,都不知道哪里错了,浪费时间

你好!!

jquery通过$("ClassName")来引用符合ClassName的元素~~

举例:

<div class="test"><span class="hello">Hello,Friend</span></div>

通过$("test")可以返回一个jQuery对象,其本质为div元素的封装······

同理,$("hello")返回的是一个封装后的span对象。

可能我之前没有理解你问题的重点,你是想问关于源码层面的实现方式么?

记得以前看过源码,这个地方最后会调用jquery的find()方法。

应该是没有原生js方法来的快,仁者见仁吧··

1根据ID,用var div=documentgetElementById('youdivid')

2通过标签名来取得var div=documentgetElementsByTagName('div')[num]

3举个例子可以多练习练习:

function a(){var div=documentgetElementById('a');alert('div的class为:'+divid)alert('div的id为:'+divclassName)}

function b(){var div=documentgetElementsByTagName('div')[0];alert('div的class为:'+divid)alert('div的id为:'+divclassName)}</script>

扩展资料 

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

参考资料 百度百科-js

以上就是关于DOM的理解与 *** 作全部的内容,包括:DOM的理解与 *** 作、想要通过js获取ID父元素下class的值,该怎么写,、jquery是如何解决在dom对象中没有getElementsByClassName接口这个问题的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9448567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存