DOM02&DOM03 day018

74 阅读3分钟

*操作元素

1、元素的内容:

1、*elem.innerHTML:获取或设置开始标签到结束标签之间的HTML代码,可以识别标签
	获取:elem.innerHTML
	设置:elem.innerHTML="新内容"

2、elem.textContent:获取或设置开始标签到结束标签之间的纯文本,具有兼容性问题,不能识别标签
	获取:elem.textContent
	设置:elem.textContent="新文本"
	老IE:elem.innerText - 第一次碰到小三上位,原本这个只有老IE可用,但随着各个浏览器的升级发展也支持了,老IE没有将就大家 ,反而大家在将就老IE

3、*input.value:获取或设置input的值
	获取:input.value;
	设置:input.value="新值";

2、元素的属性:

1、*获取属性值
	核心DOMelem.getAttribute("属性名");

	HTML DOMelem.属性名;

2、*设置属性值
	核心DOMelem.setAttribute("属性名","属性值");

	HTML DOMelem.属性名="新值";

3、*删除属性值:
	核心DOMelem.removeAttribute("属性名");

	HTML DOMelem.属性名="";

4、判断有没有:垃圾:只能判断有没有,不能判断具体是什么
	核心DOMelem.hasAttribute("属性名");

	HTML DOMelem.属性名!="";

强调:HTML DOM确实简单,但是需要注意:
	1class必须写为className
	2、只能操作标准属性,不能操作自定义属性
	3、删除属性时,删不干净,有的属性删不干净依然具有功能:比如:href没有属性值会有默认的刷新功能,disabled没有属性值依然具有禁用的功能

3、元素的样式

1、*内联样式:优先级最高,一定会覆盖其他的样式
	      仅仅当前元素可用,不会牵一发动全身
	获取:elem.style.css属性名;
	设置:elem.style.css属性名="css属性值";
	唯一的小缺陷:获取样式时,只能获取到内联的样式 - 忍一忍就过了

2、样式表:
		//1、获取你想要操作的样式表
		var sheet=document.styleSheets[i];
		//2、获取所有的样式规则
		var rules=sheet.cssRules;
		//3、所有的规则中挑选出你需要操作的规则
		var rule=rules[i];
		//4、做获取 或 设置
		console.log(rule.style.width);
		rule.style.width="100px"

*创建元素

1、*创建元素并且渲染DOM树:3步

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

2、为这个空标签设置必须要的属性和事件
	elem.属性名="属性名";
	elem.on事件名=function(){操作}

3、将这个元素渲染到DOM树上
	*父元素.appendChild(elem); - 将elem追加到父元素里面当了最后一个儿子
	父元素.insertBefore(elem,已有子元素);  - 将elem追加到父元素里面,并且插入到已有子元素的前面
	父元素.replaceChild(elem,已有子元素)  - 将elem追加到父元素里面,并且替换已有子元素

2、*删除元素:elem.remove();

恭喜你:核心DOM已经全部学习完毕了,总结:DOM到底干了什么事? 增、删、改、查(元素、属性、样式、文本)

3、HTML DOM提供了一些常用对象:并且对这些对象进行了简化,但是不是人人都可以简化

1、image对象:图片对象,仅仅只是简化了创建
	创建:var img=new Image();//完全等效于var img=document.createElement("img");
	注意:不是人人都有构造函数创建方式

2、form对象:简化了表单对象,简化的是查找:
	查找form元素:var forms=document.forms;
	查找当前这个form元素下面的input:var inps=forms[1].elements;
	专属事件:form.onsubmit=function(){//提交事件,只会在提交的一瞬间触发,防止用户输错还能提交
			return false;
		}

3、*select对象:
	属性:1select.options;//得到select下面的所有的option,完全等效于xx.children
	           2select.selectedIndex;//获取到当前选中项的下标,当时我们还说除了select其他元素都需要自定义下标才能完成此操作

	方法:1、*select.add(option);//完全等效于appendChild

	专属事件:select.onchange=function(){//选中项发生【改变】的时候才会触发}

4、*option对象:仅仅只是简化了创建,但是却非常牛逼!!
	var opt=new Option("innerHTML","value");

	一句话:完成4个操作:
		select.add(new Option("innerHTML","value"));