获取页面元素的方式
1.通过js的dom方法:可以使用内置对象 document 上的 getElementById 方法来获取页面上设 置了 id 属性的元素,获取到的是一个 html 对象,然后将它赋值给一个变量.
获取页面元素那么必须将获取元素的代码块放置在事件中
如果把 javascript 写在元素的上面,就会出错,因为页面上从上往下加载执行的,javascript 去页面上获取元素 div1 的时候,元素 div1还没有加载,解决方法有两种:
(1)将 javascript 语句放到 window.onload 触发的函数里面,获取元素的语句会在页面加载完后才执行.
注:属性的操作包括
属性的读和写。
操作属性的方法
- “.” 操作
- “[ ]”操作
属性的写法
1、html 的属性和 js 里面属性写法一样
2、“class” 属性写成 “className”
3、“style” 属性里面的属性,有横杠的改成驼峰式,比如:`font-size`,改成 `style.fontSize`
复制代码
通过.
操作属性:
通过[ ]
操作属性:
<script type="text/javascript">
window.onload=function(){
var div=document.getElementById('div1');
// alert(div);//输出结果为[object HTMLDivElement]
div.style.width=200+'px';
div.style.height=200+'px';
div.style.background='red';
// div.style.border='5px dashed black';//两种书写格式
div.style.borderWidth=5+'px';
div.style.borderColor='red';
div.style.borderStyle='dashed';
// 获取页面中div的值(innerHTML与innerTEXT)
var divContent=div.innerHTML;//获取页面元素中的内容(包含元素中的HTML的子元素)
alert(divContent);//输出结果为 Hello JavaScript<p>爱学习</p>
// var divContent=div.innerText;//获取页面中文本内容
// alert(divContent);
}
</script>
<body>
<div id="div1">Hello JavaScript<p>爱学习</p></div>
</body>
复制代码
(2):将 javascript 放到页面最下边 (写入body中)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div class="div1" id="div1">Hello JavaScript<p>爱学习</p></div>
<script type="text/javascript">
window.onload=function(){
var div=document.getElementById('div1');
// alert(div); 返回的结果为: [object HTMLDIVElement]
div.style.width=200+'px';
div.style.height=200+'px';
div.style.background='red';
// div.style.border='10px dashed black';
div.style.borderColor='black';
div.style.borderWidth=10+'px';
div.style.borderStyle='dashed';
// 获取页面中div的值
// innerHTML: 获取页面元素中的内容(包含元素中的html子元素)
var divContent =div.innerHTML;
// innerText:获取页面元素中的文本内容
var divContent=div.innerText;
// alert(divContent);
// var divWidth=div.innerWidth;
// alert(divWidth);
div.innerHTML='<a href="#">超链接</a>学的不仅是技术'
// }
</script>
</body>
</html>
复制代码
2.通过getElementsByclassName()根据元素的class获取元素 因为getElementsByClassName()获取到的结果是一个集合,要想获取单个的元素使用索引的方式获取
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.onload=function(){
// 以下是根据索引获取页面中第二个div
var div=document.getElementsByClassName('div1')[1];
// alert(div);
div.style.width=200+'px';
div.style.height=200+'px';
div.style.background='red';
}
</script>
</head>
<body>
<div class="div1"></div>
<div class="div1"></div>
</body>
</html>
复制代码
3.通过getElementsByTagname():根据元素标签名称获取元素(返回集合对象数组,可以通过*
方式获取页面上所有的元素)
<body>
<div id="div1">好好学习天天向上<p>请认真听讲</p></div>
<div id="div1">好好学习天天向上<p>请认真听讲</p></div>
<div id="div1">好好学习天天向上<p>请认真听讲</p></div>
<script type="text/javascript">
var div=document.getElementsByTagName('*').innerHTML;
alert(div1);
</script>
</body>
复制代码
innerHTML和innerText的区别:
共同点:innerHTML和innerText都会把元素内内容替换掉。
不同点:
(1)innerHTML:也就是从对象的起始位置到终止位置的全部内容,包括Html标签。
(2)innerText:从起始位置到终止位置的内容, 但它去除Html标签
innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器,因此,尽可能地去使用innerHTML。