05_进一步操作页面的元素

前面复习:

获取文档中对象的方法:

操作标签的属性:

操作元素的样式:

案例:

前提:

js/common.js代码如下:

1 /**
2  * 根据id 或者根据tagName 返回相应的元素
3  * */
4 function getId$(id){
5    return document.getElementById(id);
6 }
7 function getTags$(tagName) {
8     return document.getElementsByTagName(tagName)
9 }

点击按钮禁用/启用文本框:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6     </head>
 7     <body>
 8         <input type="button" value="禁用" id="btn">
 9         <input type="text" value="文本框" id="text" >
10         <script src="js/common.js"></script>
11         <script>
12             getId$(‘btn‘).onclick = function () {
13                 if (this.value ==‘禁用‘){
14                     getId$(‘text‘).disabled = true;
15                     this.value = ‘开启‘;
16                 }else{
17                     getId$(‘text‘).disabled = false;
18                     this.value = ‘禁用‘;
19                 }
20             };
21         </script>
22     </body>
23 </html>

点击按钮修改列表背景颜色:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6     </head>
 7     <body>
 8         <input type="button" value="改变背景颜色" id="btn">
 9         <ul id="ulist">
10             <li>河南</li>
11             <li>江西</li>
12             <li>吉林</li>
13             <li>北京</li>
14             <li>深圳</li>
15         </ul>
16
17         <script src="js/common.js"></script>
18         <script>
19             getId$(‘btn‘).onclick = function () {
20                 getId$(‘ulist‘).style.backgroundColor="cyan";
21             };
22         </script>
23     </body>
24 </html>

阻止超链接   默认的跳转:

它用的是return false .

这样默认的跳转就不会跳转了。

第一种写法:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6     </head>
 7     <body>
 8 <!--        <a href="https://www.baidu.com" onclick="alert(‘弹框了.....‘)">百度</a>-->
 9 <!--        如何让 弹框之后 也不跳转到百度页面呢?-->
10 <!--        使用return false-->
11         <a href="https://www.baidu.com" onclick="alert(‘弹框了...‘); return false ">百度</a>
12     </body>
13 </html>

第二种写法:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6     </head>
 7     <body>
 8
 9         <a href="https://www.baidu.com" onclick="return f1()">百度</a>
10 <!--        注意:onclick 中写的是 return  f1()   其实就是return false-->
11         <script>
12             function f1() {
13                 alert(‘弹框了...‘);
14                 return false;
15             }
16         </script>
17     </body>
18 </html>

第三种写法:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6     </head>
 7     <body>
 8         <a href="https://www.baidu.com" id="a">百度</a>
 9         <script src="js/common.js"></script>
10         <script>
11             getId$(‘a‘).onclick = function () {
12                 alert(‘弹框了...‘);
13                 console.log("hahhahahha");
14                 return false;
15             };
16         </script>
17     </body>
18 </html>

总之一句话就是要在相应事件中  return false 。

点击小图显示大图(不跳转的):

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6
 7     </head>
 8     <body>
 9         <a href="images/1.png" id="a"><img src="images/1.png" width="100" alt=""></a>
10         <img src="" alt="" id="big-img">
11         <script src="js/common.js"></script>
12         <script>
13             getId$(‘a‘).onclick = function () {
14                 getId$(‘big-img‘).src = this.href;
15                 //阻止它跳转
16                 return false;
17             };
18         </script>
19     </body>
20 </html>

美女画廊:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6         <style>
 7             *{
 8                 margin:0;
 9                 padding:0;
10             }
11             .main{
12                 width: 450px;
13                 height: 550px;
14                 margin: 0 auto;
15             }
16             #imageGallery{
17                 width: 400px;
18                 height: 100px;
19                 display: inline-block;
20             }
21             #imageGallery img{
22                 width: 100px;
23                 height: 100px;
24             }
25             #imageGallery li{
26                 float: left;
27                 list-style: none;
28             }
29             #imageGallery img:hover{
30                 border:1px solid palevioletred;
31                 width: 98px;
32                 height: 98px;
33             }
34             #big-img{
35                 width: 400px;
36                 height: 400px;
37                 background-color: cyan;
38                 display: block;
39             }
40
41
42         </style>
43     </head>
44     <body>
45         <div class="main">
46             <h2>美女画廊</h2>
47             <ul id="imageGallery">
48             <li><a href="images/0.png" title="美女A">
49                 <img src="images/0.png"  alt="美女A">
50             </a>
51             </li>
52             <li>
53                 <a href="images/1.png" title="美女B">
54                     <img src="images/1.png"  alt="美女B">
55                 </a>
56             </li>
57             <li>
58                 <a href="images/2.png" title="美女C">
59                     <img src="images/2.png"  alt="美女C">
60                 </a>
61             </li>
62             <li>
63                 <a href="images/3.png" title="美女D">
64                     <img src="images/3.png"  alt="美女D">
65                 </a>
66             </li>
67         </ul>
68 <!--        下面显示大图-->
69             <img id="big-img" src="" alt="">
70             <p id="p">选择一个图片</p>
71         </div>
72         <script src="js/common.js"></script>
73         <script>
74             //获得所有的a标签 对象
75             var aObjs = getId$("imageGallery").getElementsByTagName("a");
76             //循环
77             for(var i =0 ;i<aObjs.length;i++){
78                 //为每个 a 注册事件
79                 aObjs[i].onclick = function () {
80                     //将当前a 的href 赋给 大图的src
81                     getId$(‘big-img‘).src = this.href;
82                     //给p 标签修改文字
83                     getId$(‘p‘).innerText = this.title;
84                     //阻止跳转
85                     return false;
86                 };
87             }
88         </script>
89     </body>
90 </html>

隔行变色:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6     </head>
 7     <body>
 8         <input type="button" value="隔行变色" id="btn">
 9         <ul id="ulist">
10             <li>奥迪</li>
11             <li>凯迪拉克</li>
12             <li>奔驰</li>
13             <li>宝马</li>
14             <li>兰博基尼</li>
15             <li>红旗</li>
16             <li>大众</li>
17             <li>哈弗</li>
18         </ul>
19
20         <script src="js/common.js"></script>
21         <script>
22             getId$(‘btn‘).onclick = function () {
23                 var liObjs = getId$(‘ulist‘).getElementsByTagName(‘li‘);
24                 for(var i =0;i<liObjs.length;i++){
25                     liObjs[i].style.backgroundColor =‘red‘;
26                     if(i %2==1){
27                         liObjs[i].style.backgroundColor = ‘yellow‘;
28                     }
29                 }
30             };
31
32         </script>
33     </body>
34 </html>

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6     </head>
 7     <body>
 8         <input type="button" value="隔行变色" id="btn">
 9         <ul id="ulist">
10             <li>奥迪</li>
11             <li>凯迪拉克</li>
12             <li>奔驰</li>
13             <li>宝马</li>
14             <li>兰博基尼</li>
15             <li>红旗</li>
16             <li>大众</li>
17             <li>哈弗</li>
18         </ul>
19
20         <script src="js/common.js"></script>
21         <script>
22             getId$(‘btn‘).onclick = function () {
23                 var liObjs = getId$(‘ulist‘).getElementsByTagName(‘li‘);
24                 for(var i =0;i<liObjs.length;i++){
25                     liObjs[i].style.backgroundColor = i%2==0 ? "red":"yellow";
26                 }
27             };
28         </script>
29     </body>
30 </html>

better version

列表的高亮显示:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6         <style>
 7             li{
 8                 list-style: none;
 9                 cursor: pointer;
10             }
11
12
13         </style>
14
15
16     </head>
17     <body>
18         <ul id="ulist">
19             <li>奥迪</li>
20             <li>凯迪拉克</li>
21             <li>奔驰</li>
22             <li>宝马</li>
23             <li>兰博基尼</li>
24             <li>红旗</li>
25             <li>大众</li>
26             <li>哈弗</li>
27         </ul>
28
29         <script src="js/common.js"></script>
30         <script>
31             var liObjs = getId$(‘ulist‘).getElementsByTagName(‘li‘);
32             for (var i =0;i<liObjs.length;i++){
33                 console.log(liObjs[i]);
34                 //为每个li  注册两个鼠标事件
35                 //1 进入事件 enter
36                 liObjs[i].onmouseenter = function () {
37                     this.style.backgroundColor = ‘yellow‘;
38                 };
39                 //2 离开事件 leave
40                 liObjs[i].onmouseleave = function () {
41                     this.style.backgroundColor = ‘‘; //恢复默认的颜色
42                 };
43             }
44         </script>
45     </body>
46 </html>

获取元素的方式:

最常见的获取元素的方式:是通过getElementById()  和 getElementsByTagName().   这在前面已经说过。

下面是其他的方式:

根据name属性值 获取元素:

基础的标签是没有name 属性的,例如div 等没有 name 属性,

主要是表单属性有name 属性 。

所以,这里可以通过使用document.getElementsByName ()直接获得name的远的元素。

案例:点击按钮修改所有name 属性值为 name1 的文本框。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6
 7     </head>
 8     <body>
 9         <input type="button" value="显示效果" id="btn"><br />
10         <input type="text" value="你好"  name="name1"><br />
11         <input type="text" value="你好"  name="name3"><br />
12         <input type="text" value="你好"  name="name5"><br />
13         <input type="text" value="你好"  name="name1"><br />
14         <input type="text" value="你好"  name="name0"><br />
15         <input type="text" value="你好"  name="name3"><br />
16         <input type="text" value="你好"  name="name1"><br />
17         <script src="js/common.js"></script>
18         <script>
19             getId$(‘btn‘).onclick = function () {
20                 var name1List = document.getElementsByName(‘name1‘);  //这里只是针对表单表标签,它们有Name属性
21                 for (var i = 0;i<name1List.length;i++){
22                     name1List[i].value = "我很好";
23                 }
24             };
25         </script>
26     </body>
27 </html>

getElementsByName() 的使用

根据类样式的名字 获取元素:

getElementsByClassName ()  注意这个方法是在H5中才出现的。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6
 7         <style>
 8             div{
 9                 width: 200px;
10                 height: 50px;
11                 margin-top: 10px;
12             }
13             .cls{
14                 background-color: cyan;
15             }
16         </style>
17
18
19     </head>
20     <body>
21         <p>这就是个p</p>
22         <p class="cls">这是第二个p</p>
23         <span>这是第一个span</span> <br>
24         <span class="cls">这是第二个span</span> <br>
25         <div>这是第一个div </div>
26         <div class="cls">这是第二个div</div>
27         <input type="button" value="显示效果" id="btn">
28
29         <script src="js/common.js"></script>
30
31         <script>
32             //需求是 点击按钮  改变cls类样式的 背景颜色为  红色
33             getId$(‘btn‘).onclick = function () {
34                 var clsObjs = document.getElementsByClassName(‘cls‘);
35                 for (var i = 0;i<clsObjs.length;i++){
36                     clsObjs[i].style.backgroundColor = ‘red‘;
37                 }
38             };
39
40         </script>
41     </body>
42 </html>

其余的获取元素方式及总结:

1,querySelector() 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6
 7     </head>
 8         <input type="button" value="显示效果" id="btn">
 9         <script src="js/common.js"></script>
10         <script>
11             document.querySelector(‘#btn‘).onclick = function () {
12                 alert("我又出来了");
13             };
14
15         </script>
16     </body>
17 </html>

注:它拿到的是一个!  获取id

2,querySelectorAll() 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6         <style>
 7             .cls{
 8                 background-color: yellow;
 9             }
10         </style>
11     </head>
12     <body>
13         <p>这就是个p</p>
14         <p class="cls">这是第二个p</p>
15         <span>这是第一个span</span> <br>
16         <span class="cls">这是第二个span</span> <br>
17         <div>这是第一个div </div>
18         <div class="cls">这是第二个div</div>
19         <input type="button" value="显示效果" id="btn">
20
21         <script src="js/common.js"></script>
22
23         <script>
24             var clsObjs =  document.querySelectorAll(‘.cls‘);
25             getId$(‘btn‘).onclick = function () {
26                 for (var i =0 ;i<clsObjs.length;i++){
27                     clsObjs[i].style.backgroundColor = ‘red‘;
28                 }
29             };
30         </script>
31     </body>
32 </html>

注:它拿到的是多个。获取class

总结:

偶尔还会用下className .

案例:

div高亮显示:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>我是网页标题</title>
 6         <style>
 7             *{
 8                 margin:0;
 9                 padding:0;
10             }
11             div{
12                 width: 100px;
13                 height: 50px;
14                 background-color: yellowgreen;
15                 float: left;
16                 margin-left: 10px;
17
18                 border: 1px solid yellowgreen;  /*它可以使得 下面高亮的时候不抖动  鼠标经过的时候无非是将已有边框从蓝色变为红色*/
19             }
20
21         </style>
22     </head>
23     <body>
24         <div></div>
25         <div></div>
26         <div></div>
27         <div></div>
28         <div></div>
29         <script src="js/common.js"></script>
30
31         <script>
32             var objs = document.getElementsByTagName(‘div‘);
33             for (var i =0 ;i<objs.length; i++){
34                 //鼠标进入 事件
35                 objs[i].onmouseenter = function () {
36                     this.style.border ="1px solid red";
37                 };
38                 //鼠标离开 事件
39                 objs[i].onmouseleave = function () {
40                     this.style.border = "";
41                 }
42
43             }
44         </script>
45     </body>
46 </html>

原文地址:https://www.cnblogs.com/zach0812/p/11660776.html

时间: 2024-08-05 10:36:15

05_进一步操作页面的元素的相关文章

使用HTML5的JS选择器操作页面中的元素

上一篇文章介绍了HTML5新增的JavaScript选择器,今晚正式实践一下,使用HTML5的JS选择器操作页面中的元素. 文件命名为:querySelector.html,可在Chrome浏览器中预览效果. 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>使用HTML5的JS选择器操作页面中的元

WebDriver操作页面元素之单选按钮

在使用webdriver操作页面元素的时候经常会遇到一些单选按钮的情况,例如:注册时性别选择.单选按钮族中所有按钮共享同一个名称,所以浏览器知道将按钮组合在一起,通过选中其中一个按钮,其他按钮自动变为未选中状态. 示例代码: package com.seleniumdemo.webdriver; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.T

操作页面元素等待时间

WebDriver在操作页面元素等待时间,提供两种等待方式:一个为显示等待,另一个为隐式等待 区别:1)显示等待:明确告诉webDriver按照特定的条件进行等待,条件未达到,,就一直等待.这在等待某个元素需要非常长的时间时非常有效 2) 隐式等待:告诉webDriver一个最大的超时时间,如果等待条件在超时以前就满足,就立刻执行后续操作而无须等待超时达到 package test; import java.util.concurrent.TimeUnit; import org.openqa.

JQuery操作iframe父页面与子页面的元素与方法

JQuery操作iframe父页面与子页面的元素与方法 更新: 2011-05-05 来源: 互联网 字体:[大 中 小] - JQUERY IFRAME 下面简单使用Jquery来操作iframe的一些记录,这个使用纯JS也可以实现. 第一.在iframe中查找父页面元素的方法: $('#id', window.parent.document) 第二.在父页面中获取iframe中的元素方法: $(this).contents().find("#suggestBox") 第三.在ifr

使用JavaScript操作页面元素

在webdriver脚本代码中执行JavaScript代码,来实现对页面元素的操作.此种方式主要用于解决在某些情况下,页面元素的.click()方法无法生效等问题. #!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : [email protected] """ #使用JavaScript操作页面元素 from selenium import

iframe中操作主体页面的元素,方法

在不使用三大框架的情况下,iframe的使用可以做到在页面中直接引入别的页面作为当前页面的一部分,但是在iframe的使用过程中存在一些相互之间的操作 例如在iframe中获取主页面的元素,使用主页面的js中定义的方法 第一.在iframe中查找父页面元素的方法: $('#id', window.parent.document) 第二.在父页面中获取iframe中的元素方法: $(this).contents().find("#suggestBox") 第三.在iframe中调用父页面

jQuery操作页面元素之包装元素

一:包装结点:指用指定HTML结构包装现有元素,被包装元素成为结构的子结点.就好像python中的装饰器. 1:wrap(): wrap方法用指定HTML结构包装结点,参数可以是HTML字符串.选择器或者jQuery对象.匹配多个结点时,分别包装各个结点. 2:wrapAll(): wrapAll方法将所有选中的结点包装在一个HTML结构中,参数可以是HTML字符串.选择器或者jQuery对象. 1 <!DOCTYPE html> 2 <html> 3 4 <head>

父子页面之间元素相互操作(iframe子页面)

js/jquery获取iframe子页面中元素的方法: 一.使用window.frames["iframe的ID"]获取元素 window.onload = function() { var oIframe = window.frames["oIframe"].document.getElementById("getFrame"); console.log(oIframe); } 注意:此处一定要加上window.onload或者DOMConte

jquery 框架页面 操作 顶层窗体中元素,或者其他框架页面中元素

(1) var dls = top.$("#leftFrame").contents().find("dl"); top是Window类的实例,表示最顶层窗体 所有的jquery对象可以看成是windsow对象的属性. 因为 js中定义一个变量,比如 var aVar = 1,就相当于给window对象新增一个属性, 可以通过windows.aVar来访问刚刚定义的对象. top.$("#leftFrame")用了找到 顶层窗体中id为leftF