DOM元素 DAY18

一、操作元素

1、*innerHTML:获取和设置元素的内容,并且识别标签——没有兼容性问题,老IE也支持。

         获取:elem.innerHTML;——往往用于判断

        设置:elem.innerHTML="新内容" ——添加/修改

2、textContent: 获取 和 设置元素的文本,不能识别标签—— 有兼容性问题,老IE不支持。

                获取:elem.texContent; ——往往用于判断

                设置:elem.textContent="新文本" ——添加/修改

        解决:innerText ;——老IE和现在的主流浏览器都支持

3、*value: 解决 和 设置input的内容

                获取:input.value; ——往往用于判断

                设置:input.value="新文本";——添加/修改

二、元素的属性:

1、*获取属性值:                                                                —往往用于判断

        核心DOM:elem.getAttribute("属性名");                  —虽然API比较繁琐,但是无敌

        HTML DOM:elem.属性名                                            —虽然简单,但是不能操作自定义属性

2、*设置属性值:                                                                    —添加/修改

        核心DOM:elem.setAttribute("属性名","属性值");        —虽然API比较繁琐,但是无敌

        HTML DOM:elem.属性名="属性值"                               —虽然简单,但是不能操作自定义属性

3、*删除属性值:                                                               

        *核心DOM:elem.removeAttribute("属性名")                —完整删除整个属性节点

        HTML DOM:elem.属性名=" "                                        —删不干净,只能删除属性值,属性节点依然存在,而有的属性,只要写出属性名就已经有作用(比如:href、disables、readonly)

4、判断有没有                                                                        —没用

        elem.hasAttribute("属性名");—结果是一个布尔值,但是没有用,只能判断有没有,不能判断具体属性值是什么

        *推荐判断还是使用  * 获取属性值  

建议:以后优先使用HTML DOM,实现不了的再用 核心DOM补充

        小心:1、HTML DOM   class要写为lassName

                2、HTML DOM  不能操作自定义属性

三、元素的样式:

1、内联样式:

        优点:1、优先级高         2、不会牵一发动全身

        获取:elem.style.css属性名;

        设置:elem.style.css属性名="css属性值"

                特殊:1、css属性名,把横线去掉换成小驼峰命名法

                           2、获取也只能获取内联样式-小缺点

2、样式表

        1、获取你想要操作的样式表

                var sheet=document.styleSheets[i];

        2、获取所有样式规则

                var rules=sheet.cssRules;

        3、打桩输出 数出你需要操作的某个样式规则

                var rule=rules[i]; 

        4、对此规则获取或者设置

                console.log(rule.style.banckground);

                rule.style.background="skyblue";

四、创建元素:2步;

        1、创建空标签:var elem=document.createElement("标签名");

                        例如:var a=document.createElement("a");

        2、添加必要的属性和事件 

                elem.属性名="属性值"

                elem.on事件名=function(){操作}

                以上两步只是在js内存中创建出了元素,还需要渲染到DOM树上

五、渲染页面方式:3种

           1、父元素.appendChild(新);                               —新元素会追加到父元素中当最后一个儿子

           2、父元素.insertBefore(新,已有子元素);          —新元素会追加到父元素中当儿子,会插到已有子元素的前面

           3、父元素.replaceChild(新,已有子元素);         —新元素会替换到父元素中当儿子,会替换已有子元素

六、删除元素:

                *elem.remove();

核心DOM总结:增删改查DOM(元素、内容、属性、样式)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

七、HTML DOM常用对象:HTML DOM就是对核心DOM进行了简化:

        1、Image对象:图片对象:

                简化了创建方式:var img=new Image();

        2、Form对象:表单对象;

        简化了查找元素:var form=document.forms[i];                —获取页面上的第i个form元素

        简化了查找表单控件元素:var inp=form.elements[i]        —获取此form表单中的第 i 个表单空间元素

        3、*Select对象

                属性:1、select.options === select.children 获取到select下面的所有option

                           2、*select.selectedIndex;                             —获取到选中项的下标

                方法:1、*select.add(option);                   —将option上树

                           2、select.remove(i);                        —删除下标为 i 的option

                *专属事件:onchange                                —选中项发生改变后才会触发

        4、*Option对象:

                简化了创建方式:var opt =new Option("innerHTML","value");

                建议你,如果以后希望创建出opt并且放到select中:        完成4个操作

                        select.add(new Option("innerHTML","value"))

        小知识点:表单控件元素必须添加mame,才能传到服务器端/后端

                        有点表单控件还要添加value,用户不能输入只能选择的,我们程序员就要把value提前写好,供用户选择后端

                

                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值