JavaScript+DOM+JSON

JavaScript

(1)JavaScript入门案例:要在script标签里写
<script>
    //alert弹窗
       alert(100);
       alert(200); 
</script>
(2)JavaScript数据类型(6大类)
 <script>
 	// (1)字符串
   // 注意:外边单引里边双引、外边双引里边单引。
   var a = "张三";
   document.write(a + "<br>");
   var b = '李四';
   document.write(b + "<br>");
   
   // (2)数字
   var c = 12.34;
   document.write(c + "<br>");
   
   // (3)布尔
   var d = true;
   document.write(d + "<br>");
   
   // (4)数组
   var e = new Array('张三','李四');
   document.write(e[1] + "<br>");
   
   // (5)null空
   var f = null;
   document.write(f + "<br>");	//打印结果是undefined
   
   // (6)undefined未定义
   var g;
   document.write(g + "<br>");//打印结果是undefined
</script>
(3)JavaScript运算符(6大类)
<script>
        // (1)算数
        document.write(3 + 2);
        document.write(3 - 2);
        document.write(3 * 2);
        document.write(3 / 2);
        document.write(3 % 2);
        document.write("<br>");
        
        // (2)比较
        document.write(3 > 2);
        document.write(3 >= 2);
        document.write(3 < 2);
        document.write(3 <= 2);
        document.write(3 == 2);
        document.write(3 != 2);
        document.write("<br>");
        
        // (3)逻辑
        document.write(true && false);
        document.write(true || false);
        document.write(!true);
        document.write("<br>");
        
        // (4)赋值
        var v = 3;
        document.write(v);
        v += 2;
        document.write(v);
        v -= 2;
        document.write(v);
        v *= 2;
        document.write(v);
        v /= 2;
        document.write(v);
        v %= 2;
        document.write(v);
        document.write("<br>");
        
        // (5)自增自减
        var s = 2;
        s++;
        document.write(s);
        s--;
        document.write(s);
        document.write("<br>");
        
        // (6)三目
        var x = 2;
        var y = 3;
        var m = x > y ? x : y;
        document.write(m); 
</script>
(4)if分支语句
<script>
       var a = 2;
       var b = 3;
       var c = 5;
       if (a > b && a > c) {
           document.write(a);
        } else if (b > c) {
            document.write(b);       
        } else {
            document.write(c);
        }
   </script>
(5)for循环
<script
       // 求1+2+3+...+10和?
       var s = 0;
       for (var i=1;i <= 10;i++) {
           s += i;
       }
       document.write(s);
       
       // 求数组元素和
       var arr = new Array(1,3,5,7,9);
       var x = 0;
       for (var i=0; i < arr.length; i++) {
           x += arr[i];
       }
       document.write(x);       
   </script>
(6)JavaScript事件和方法

说明:前台的任何功能都是通过事件触发

事件:鼠标、键盘、屏幕等触发的动作

方法:功能实现

 <script>
    
       // 没有返回值的方法
       // 注意:参数列表只写变量名
       function m1(a, b){
           alert(a + b);
       }
       
       // 有返回值的方法
       // 注意:必须使用return关键字返回结果。
       function m2(c, d) {
           return (c + d);
       }
    
   </script>
   
   <input type="button" value="按钮1" onclick="m1(2,3)">
   <input type="button" value="按钮2" onclick="alert(m2(4,5))">
    
</body>
(7)外部js文件调用方法(方法作用域-多个页面要调用同一个方法)

步骤一:onclick单机事件,调用方法

 <input type="button" value="按钮" onclick="m7();">

步骤二:创建外部js(7.js)文件,并写下方法

//这个方法的意思是:点击按钮弹窗口
function m7() {
    alert(123);
}

步骤三:在head标签内通过script 标签导入js脚本文件

 <script src="7.js"></script>
(8)DOM文档对象模型:查询方法:getElementById

说明:DOM就是document对象,DOM对页面内容进行封装

说明:DOM是网页中的用来表示文档中对象的标准模型

说明:DOM提供前端页面添加、修改、删除、查询方法

说明:JS语言很多内置对象、其中DOM是最常用的

内置对象:浏览器已经创建好直接可以使用的对象。window、location等

//有一个文本框,有一个按钮,需要实现“点击按钮,查询出文本框内容”的功能(m8())
<input id="a" type="text">
<input type="button" value="按钮" onclick="m8();">

// getElementById:根据id获取元素节点的对象
<script>
    function m8(){
    //变量a代表文本框输入的对象
    //注意:由于这个方法太过常用,浏览器会自动调用这个方法,因此“var a = document.getElementById("a");”这段代码可以省略
        var a = document.getElementById("a");
    //a.value就是查询出来的值
        alert(a.value);
    }
    </script>
(9)DOM文档对象模型:添加方法(静态添加、【动态添加】)
<ul id="u">
       <li>大连</li>
       <li>沈阳</li>
</ul>
   
   <input type="button" value="按钮" onclick="m9();">
   
   <script>
    function m9(){
        // 创建标签:createElement
        var a = document.createElement("li");
        // 创建文本:createTextNode
        var b = document.createTextNode("北京");
        // 父节点添加子节点(父标签里面嵌套子标签)
        a.appendChild(b);//把文本“北京”封装在标签"li"中
        u.appendChild(a);//把标签"li"封装在标签"ul"中
    }
    </script>

DOM添加练习题:

<table id="t" border="1">
        <tr><td>张三</td><td>30</td></tr>
        <tr><td>李四</td><td>40</td></tr>
</table>
<input type="button" value="按钮" onclick="m10();">
    
//要求:添加一条“王五 50”的信息(静态添加)
<script>    
     function m10(){
            
               //由于要添加一行,首先创造一个行标签
             var b = document.createElement("tr");
         
             //由于有两列,所以需要创建两个列标签
             var a1 = document.createElement("td");
         
             var a2 = document.createElement("td");
           
             var c = document.createTextNode("王五");
         
             var d = document.createTextNode(50);
         
             a1.appendChild(c);
             
             a2.appendChild(d);
         
             b.appendChild(a1);
         
             b.appendChild(a2);
         
             t.appendChild(b);
        }
</script>

DOM添加练习题:查询+添加(动态)

 <table id="t" border="1">
        <tr><td>张三</td><td>30</td></tr>
        <tr><td>李四</td><td>40</td></tr>
</table>
    <input id="x" type="text"><br>
    <input id="y" type="text"><br>
    <input type="button" value="按钮" onclick="m10();">
    
<script>
    function m10(){
        var tr = document.createElement("tr");
        var td1 = document.createElement("td");
        var td2 = document.createElement("td");
        var text1 = document.createTextNode(x.value);
        var text2 = document.createTextNode(y.value);
        t.appendChild(tr);
        tr.appendChild(td1);
        tr.appendChild(td2);
        td1.appendChild(text1);
        td2.appendChild(text2);
    }
</script>
DOM文档对象:修改方法:setAttribute(设置属性)
 <img id="t" src="a.png" width="100px" height="100px;"><br>
     //按钮自身的标签:button
     //修改要注意传参数
   <button onclick="m11('a.png');">图片1</button>
   <button onclick="m11('b.png');">图片2</button>
   <button onclick="m11('c.png');">图片3</button>
   
   <script>
    function m11(x) {
        t.setAttribute("src", x);
    }
</script>
<img id="t" src="a.png" width="100px" height="100px;"><br>
   //动态修改<input id="a" type="text"><br><input id="b" type="text"><br>
   <button onclick="m12();">按钮</button>
    <script>
    function m12(){
        a.setAttribute("type", "radio");//把输入宽的文本框改成单选,通过id调用
        t.setAttribute("width", a.value + "px");
        t.setAttribute("height", b.value + "px");
    }
    </script>
(13)DOM文档对象模型:删除方法:removeChild
<ul id="a">
       <li id="b">北京</li>
       <li id="c">上海</li>
   </ul>
   
   <button onclick="m13();">按钮</button>
   
   <script>
    function m13(){
       //父标签删除子标签,父标签引用删除子标签
        a.removeChild(c);
    }
    </script>

DOM文档对象:删除案例

<table id="t" border="1">
    <tr><th>姓名</th><th>年龄</th><th>操作</th></tr>
//onclik是单击调用方法d(),this表示当前标签对象,这里的this写在button标签里面,就代表button这个对象
    <tr><td>张三</td><td>30</td><td><button onclik="d(this);">删除</button></td></tr>
    <tr><td>李四</td><td>40</td><td><button onclik="d(this);">删除</button></td></tr>
</table>
   
<script>
        //方法内定义参数b来接受this表示的button对象,此时b就代表button这个标签
function d(b){
     //删除是父删子,如果要想删除掉张三的所有信息(即张三所在行的信息),就要table删除tr
    //首先获取table的标签
   //b.parentNode表示b的父节点,即button标签的父节点td
  //b.parentNode.parentNode表示td的父节点,即tr
 //b.parentNode.parentNode.parentNode取到tr的父节点table(注意这里不是很规范,正常还有tbody,自己心里要清楚)
        //a就代表当前的表格(就目前代码而言)
    var a = b.parentNode.parentNode.parentNode;
       
//c就代表当前按钮所在的行
    var c = b.parentNode.parentNode;
    a.removeChild(c);  
}    
</script>

//注意:通常在页面给用户显示的是超链接删除

没有链接地址就用#号代替,href="#"

<tr><td>张三</td><td>30</td><td><a href="#" onclick="d(this);">删除</a></td></tr>
<tr><td>李四</td><td>40</td><td><a href="#" onclick="d(this);">删除</a></td></tr>
(15)JavaScript中数组类型的常用方法
 <script>    
        // (1)创建数组
        var a = new Array();//创建空数组
        var b = new Array(3);//创建长度为3的数组
        var c = new Array(1,2,3);//创建元素是1,2,3的数组

		//只有c能打印出来1,2,3
        document.write(a);
        document.write(b);
        document.write(c);
        
        // (2)元素存取
		//c[2]的元素赋值给c[1]
        c[1] = c[2];
        document.write(c);
        
        // (3)添加方法(头尾添加)
		
		//push往数组末尾添加的方法
        c.push(4);
        c.push(5);
		//unshift往数组前面添加的方法,较常用
        c.unshift(4);
        c.unshift(5);
		//最后输出显示5在4的前面
        document.write(c);        
    
        // (4)删除方法
		//pop删除数组后面的
        c.pop();
		//shift删除数组前面的
        c.shift();
        document.write(c);        
 </script>
(16)JSON数据格式

说明:JSON是JavaScript语言的对象表示方法

说明:JSON是**服务器端发往前端**的数据标准之一

总结:在json数据中:{}代表对象,[]代表数组,逗号代表分割符

<script>
  // (一)JSON对象的数据格式:一个对象
   // 注意:冒号右边的数据类型,字符串加引号,数字不能加引号
    //json数据中,一个花括号{}就代表一个对象
    //{name:'张三',age:30}就代表一个对象,冒号左边的代表数据名,冒号右边代表数据值,逗号是分隔符
   var a = {name:'张三',age:30};//把对象存到变量a中

	//取值只需要:对象.数据名即可取值,a.name取得是名字值,a.age取得是年龄值
   document.write(a.name + a.age);

  	// (二)JSON数组的数据格式:多个对象,[]代表数组(注意与Java数组表示的区别)
	//存取通过数组下标,一个对象就是一个元素
	//b[0].name取得是第一个对象的name的数据值张三
   var b = [{name:'张三',age:30},{name:'李四',age:40}];
   document.write(b[0].name + b[0].age);
</script>

JSON综合练习题:把JSON中的数据打印出来

<script>    
    var a = {list:[{name:'张三',age:30}]}; 
	//a是对象,冒号左边的list是数据名(注意这里list不是集合)
	//冒号右边是一个数组,通过下标取值
    document.write(a.list[0].name,a.list[0].age);      
    
    var b = {x:true,y:180,z:{name:'李四',age:30}};   
    document.write(b.x,b.y,b.z.name,b.z.age);
       
    var c = {e:'成功',f:null,g:[{name:'李蕾'},{name:'李蓓'},{name:'李梦'}]};  
    document.write(c.e,c.f,c.g[0].name,c.g[1].name,c.g[2].name); 
</script>
(18)JSON数据的遍历(对象遍历和数组遍历)
<script>    
       // (1)JSON对象遍历(不常用)
       var a = {name:'张三', age:30};
	//遍历通过关键字in
	//in关键字的右边是遍历的对象,in的左边是数据名
	//在这里创建变量b,name会自动把赋给变量b,age也相同赋给b(注意:只是把名字赋给b,而不是数据值)
       for (var b in a) {
           //取值用对象方括号加变量,即:a[b]
           //b + a[b] 最后打印出来的结果是:name张三 age30
           document.write(b + a[b] + "<br>");
       }
       
       // (2)JSON对象数组遍历(常用)
       var b = [{name:'张三', age:30},{name:'李四', age:40}];
       for (var i=0;i < b.length; i++) {
           document.write(b[i].name + b[i].age + "<br>");
       }       
</script>

JSON遍历综合案例

//案例场景:前端有个表格,但是表格空的,需要后端给他发数据
<table id="t" border="1"></table>

//设置一个按钮点击触发,点击按钮向后台发请求,获取后台数据(onclick单击调用m方法)  
<button onclick="m();">按钮</button>
 
//我们要做的:用JavaScript语言把json数据添加到表格中去
<script>
function m() {
    var list = [{name:'张三', age:30, s:'男'},{name:'李四', age:40,s:'女'}];
    //第一步:遍历数组
    for (var i=0; i < list.length; i++) {
        //由于for循环是遍历数组,这个数组中有一个元素(即json数据的一个对象),表格中就对应着一行
        //因此遍历几次,就要创建几个tr行标签(获取一个元素,就有一个tr标签)
        var tr = document.createElement("tr");
       
        //遍历对象,这个for循环执行几次,创建几个单元格
        for (var v in list[i]) {
            var td = document.createElement("td");//创建标签
            var tx = document.createTextNode(list[i][v]);//取数据(创建文本节点)
             
            td.appendChild(tx);//td里面加文本
            tr.appendChild(td);//td里面加数据
        }
        t.appendChild(tr);
    }
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YD_1989

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值