JavaScript面向对象编程,操作bom,dom,表单,jquery入门

面向对象编程

原型:

在JavaScript中,每个对象都有一个proto属性,这个属性指向该对象的原型。

img

原型对象可以理解为父类

Class创建对象

 //原生给JS对象增加方法
function Student(name){
    this.name= name;
}
Student.prototype.hello = function (){
    alert('hello');
}

//使用class创建对象
 class Student1{
    constructor(name) {
        this.name=name;
    }
    hello(){
        alert('hello')
    }
 }

继承

class Pupil extends Student{
   constructor(name,grade) {
       super(name);
       this.grade = grade;
   }
}

原型链

简单的回顾一下构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。那么假如我们让原型对象等于另一个类型的实例,结果会怎样?显然,此时的原型对象将包含一个指向另一个原型的指针,相应地,另一个原型中也包含着一个指向另一个构造函数的指针。假如另一个原型又是另一个类型的实例,那么上述关系依然成立。如此层层递进,就构成了实例与原型的链条。这就是所谓的原型链的基本概念。——摘自《javascript高级程序设计》

操作BOM对象

BOM:浏览器对象模型

window对象

代表浏览器的窗口

window.innerHeight;//浏览器窗口的高
window.innerWidth;//宽
window.outerHeight;//外高
window.outerHeight;//外酷安

Navigator

Navigator 封装了浏览器的信息,信息可以被人为修改,开发不建议使用

window.navigator.appName;
navigator.appVersion;//客户端信息
navigator.userAgent;//内核
navigator.platform;//32位还是64位

Screen

screen.width;
screen.height;

locaiton

//location代表当前的页面的url信息
location.href;
location.reload();//刷新网页
//设置新的地址
location.assign('www.baidu.com');//重定向

Document

<dl id="app">
    <dt>java</dt>
    <dd>javase</dd>
    <dd>javaee</dd>
</dl>

<script>
    //获取具体的文档树节点
    var dl =document.getElementById('app');
     //获取cookie
    document.cookie;
    /*劫持cookie原理
    前端获取cookie上传到他的服务器
    * */
</script>

History

代表浏览器的历史记录

history.back();//返回
history.forward();//前进

操作DOM对象

文档对象模型

核心

浏览器网页是一个Dom树形结构

  • 更新Dom节点
  • 遍历Dom节点:得到Dom节点
  • 删除Dom节点
  • 添加新节点

获得Dom节点

<h1>标题</h1>
<p id="p1">p1</p>
<p class="p2">p2</p>


<script>
    var name=document.getElementById('p1');
    document.getElementsByTagName('h1');
    document.getElementsByClassName('p2');
    var father = document.getElementById('father');
    
    var childrens = father.childen; //获取父节点下的所有子节点
</script>

更新Dom节点

<div id="1">
</div>
<script>
    //操作文本
    var id1=document.getElementById('1');
    //插入数据
    id1.innerText='534';
    id1.innerHTML='<strong>ceshi</strong>>';
    
    //操作css
    id1.style.color='yellow'; 
    id1.style.fontSize='20px';
    id1.style.padding= '2em'
</script>

删除Dom节点

先获取父节点,再通过父节点删除自己

<div id="1">
    <p id ="2">2323</p>
</div>
<script>
    var self = document.getElementById("2");
    var fathter=self.parentElement;
    fathter.removeChild(self);
</script>

插入节点

<p id="js">JavaScript</p>
<div id="list">
    <p id="se">JavaSE</p>
    <p id="ee">JavaEE</p>
    <p id="me">JavaME</p>
</div>
<script>
    let js = document.getElementById('js');
    let list = document.getElementById('list');
    list.append(js);//追加
    
     //通过js创建一个新的节点
    var np=document.createElement('p');
    np.id='123';
    np.innerText='23323';
    list.append(np);
     //创建标签节点
    let myScript = document.createElement('script');
    myScript.setAttribute('type','text/javascript');
    myScript.setAttribute('src','www.naodi.com');
</script>

操作表单

<form action="text" method="post">
    <span>用户名:</span><input type="text" id="username">
</form>

<script>
    //得到输入框的值
    var username = document.getElementById('username');
    username.value
    //查看选择框是否被选中
    username.checked
</script>

提交表单

使用md5加密

    <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>
</head>
<body>

<form action="ti.html" method="post">
    <p>
        <span>用户名:</span><input type="text" id="username" name="username">
    </p>
    <p>
        <span>密码:</span><input type="password" id="input-password">
    </p>

    <input type="hidden" id="md5-password" name="password">
    <button type="submit" onclick="check()"></button>
</form>
<script>
    function check(){
        var username = document.getElementById('username');
        var password = document.getElementById('input-password');
        var md5password = document.getElementById('md5-password');

        md5password.value = md5(password.value);
        return true;
    }
</script>

jQuery

js方法工具类

获取jQuery

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>

jQuery公式

<!--
jQuery
公式:$(selector).action()  选择器加行为
-->
<a href="" id="test-jquery">点我</a>

<script>
    $('#test-jquery').click(function(){
        alert('1');
    })
</script>

jQuery选择器

$('p').click();//标签选择器
$('#id1').click(); //id选择器
$('.class1').click(); //class选择器

其余选择器可参考:http://jquery.cuishifeng.cn/

事件

鼠标事件,键盘事件

操作Dom

<ul id="test-ul">
    <li class="js">javascript</li>
    <li name="python">python</li>
</ul>


<script>
    $('#test-ul li[name=python]').text();
</script>

ick(); //id选择器
$(’.class1’).click(); //class选择器


其余选择器可参考:http://jquery.cuishifeng.cn/

## 事件

鼠标事件,键盘事件

## 操作Dom

```html
<ul id="test-ul">
    <li class="js">javascript</li>
    <li name="python">python</li>
</ul>


<script>
    $('#test-ul li[name=python]').text();
</script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值