zoukankan      html  css  js  c++  java
  • python学习第46天

    js序列化

    var d = {'a':'aa','b':18};
    序列化:
    	var d_json = JSON.stringify(d); //python  json.dumps(d);
    	
    反序列化:
    	d_json = "{"a":"aa","b":18}"
    	var reverse_json = JSON.parse(d_json);  //python  json.loads()
    

    ECMAScript(三大核心)

    js语言 -- 核心

    BOM操作 js操作浏览器对象模型(Browers object model)

    DOM操作 js操作我们HTML文件(包括文件中的所有元素,属性等等)

    Document object model

    一.BOM对象 浏览器对象模型

    1.弹框(了解)

    alert('xx');
    confirm('are you sure?')
    

    下面两个必须记住

    window对象,全局BOM对象,是咱们后面学的所有对象的原始对象

    2.location对象

    location.href;  获取当前页面的地址
    location.href = 'http://www.baidu.com'; 跳转到这个网址上
    location.reload();  刷新当前页面
    

    3.计时器

    第一种:一段时间之后执行某个任务
    	设置:var t = setTimeout(function(){confirm('你满18岁了吗?')},5000);
    		var t = setTimeout("console.log('xxx')",1000);
    		t就是浏览器用来记录你的计时器的标识数字
    	清除:clearTimeout(t)
    第二种:每隔一段时间执行某个任务
    	设置:var t = setInterval(function(){confirm('弹个框!!')},3000);
    	清除:clearInterval(t);
    

    二.DOM对象

    HTML文档(.html文件)

    1.直接查找选择器

    html代码:
    	<div class="c1" id="d1"></div>
    	<div class="c1 c2" id="d2"></div>
    css代码:
    	   .c1{
                background-color: green;
                height: 100px;
                 100px;
            }
            .c2{
                background-color: red;
                /*height: 100px;*/
                /* 100px;*/
                color:red;
            }
    
    按标签名查找: var divEle = document.getElementsByTagName('div');
    按id值查找:  var d1 = document.getElementById('d1');
    			示例: d1.style.height = '600px';
    按类值查找:var a = document.getElementsByClassName('c1');
    示例:
    var d2 = document.getElementsByClassName('c1');
    d2.style.color = 'green';  
    报错:因为得到的是多个标签对象,会放到一个数组里面,也就是得到的d2是个标签数组对象,里面比普通数组多了一些其他的属性
    	VM1527:1 Uncaught TypeError: Cannot set property 'color' of undefined
        at <anonymous>:1:16
    
    所以需要循环来设置标签效果
    for (var i in d2){console.log(d2[i])};  直接循环数组不好,因为有其他属性干扰
      VM1658:1 <div class=​"c1" id=​"d1" style=​"color:​ red;​">​div1​</div>​
      VM1658:1 <div class=​"c1" id=​"d2">​div2​</div>​
      VM1658:1 2
      VM1658:1 ƒ item() { [native code] }
      VM1658:1 ƒ namedItem() { [native code] }
      
    需要下面的方式进行循环
    for (var i=0;i<d2.length;i++){console.log(i,d2[i])};
    
    也可以通过索引取值
    d2[0];
    

    2.间接查找选择器

    var div1 = document.getElementsByClassName('c1')[0]; 
    div1.nextElementSibling.style.color = 'red';  找下一个兄弟标签,并改了色
    div1.previousElementSibling;  找上一个兄弟
    div1.firstElementChild;  找第一个儿子
    div1.lastElementChild;  找最后一个儿子
    div1.children;  找所有儿子,是一个数组
    div1.parentElement;  找到自己的父级标签
    

    3.文本操作

    innerText
    	获取文本:
    		var a = document.getElementById('jd')
    		a.innerText;  只获取文本内容
        设置文本:
        	a.innerText = '<a href="">校花</a>';不能识别标签,单纯的文本内容显示
    innerHTML
    	获取文本	
    		var d = document.getElementsByClassName('c1')[0];
    		d.innerHTML;  获取的内容包含标签
    	设置文本:
    		d2.innerHTML = '<a href="">校花</a>'; 能够识别标签,生成标签效果
    
    

    4.value值操作

    input标签
    	html:
    		<input type="text" name="username" id="username" >
    	示例:
    		var inp = document.getElementById('username'); 找到标签
    		inp.value;  获取值
    		inp.value = '200块!';  修改值
    

    5.class类值操作

    var div1 = document.getElementById('d1');
    div1.classList;  // 获取标签类值
    div1.classList.add('c2'); // 添加类值
    div1.classList.remove('c3'); // 删除类值
    div1.classList.toggle('c3');  // 有就删除,没有就添加
    var t = setInterval("div1.classList.toggle('c3')",1000);  //定时器添加
    

    6.style样式操作

    var div1 = document.getElementById('d1');
    div1.style.color = 'green';
    //当css属性名称有-的时候,需要去掉-,并且后面单词的首字母大写
    div1.style.backgroundColor = 'green';
    

    7.HTML的label标签补充

        <label >用户名: 
            <input type="text" name="username" id="username">
        </label>
        
        <label for="password">密码: </label>
        <input type="password" name="password" id="password">
    

    8.button补充

    普通按钮,没有提交效果
    <input type="button">
    <button type="button">注册</button>
    
    下面两个能够提交form表单数据
    <input type="submit" value='登录'>
    <button type="submit">注册</button>
    
    示例:
    <!--<label for="username">用户名</label>-->
    <form action="http://www.baidu.com">
        <label>
            用户名
            <input type="text" id="username" name="username">
        </label>
    
    <!--    <input type="submit">-->
    <!--    <input type="button" value="普通按钮">-->
    <!--    <button type="submit">button提交</button> 默认type="submit",也可以触发提交数据的动作-->
    <!--    <button type="button">button提交</button> type="button"普通按钮-->
    </form>
    <!--在form标签外面都是普通按钮-->
    <input type="submit">
    <button>xxx</button>
    

    9.事件

    DOM中可以为标签设置事件,给指定标签绑定事件之后,只要对应事件被触发,就会执行对应代码.

    (1)常见事件

    onclick 单击时触发事件

    ondblclick 双击触发事件

    onchange 内容修改时触发事件

    onfocus 获取焦点(光标)时触发事件

    onblur 失去焦点(光标)时触发事件

    (2)绑定事件的两种方式

    方式1
    <div class="favor" onclick="doFavor(this);">赞</div>
    function doFavor(self) {
            ...
    }
    
    方式2
    <div class="favor">赞</div>
    var dEle = document.getElementsByClassName('.favor')
    dEle.onclick = function(){
    	...
    }
    
  • 相关阅读:
    一条语句批量插入多条数据
    VMware Workstation 15 Pro 永久激活密钥
    windows下java项目打包、启动批处理 .bat文件
    java简写名词解释
    windows查看所有进程:netstat -ano
    Java验证jwt token
    【转载】三种方法从 HTTPS 网站导出 SSL 证书链
    使用solr将CSV/XML/DB/JSON数据发布为Rest Service
    检验多个xsd的xml是否合法
    Eclipse 打包运行maven项目
  • 原文地址:https://www.cnblogs.com/yunchao-520/p/13227740.html
Copyright © 2011-2022 走看看