前端javascrip基础知识点

1、获取元素

根据 ID 获取

document.getElementById('id')

返回的是一个元素对象,使用 console.dir() 可以打印我们获取的元素对象,更好的查看对象里面的属性和方法。

根据标签名获取

document.getElementsByTagName('标签名');

返回的是获取过来元素对象的集合,以伪数组的形式存储,想要操作里面的元素就需要遍历:for(var i = 0; i < x.length; i++ ){ console.log(x[i]); }

还可以获取某个元素(父元素)内部所有指定标签名的子元素:

element.getElementsByTagName('标签名');

注意:父元素element必须是单个对象(必须指明是哪一个元素对象). 获取的时候不包括父元素自己。

通过 HTML5 新增的方法获取(i9以上支持)

1. document.getElementsByClassName(‘类名’);// 根据类名返回元素对象集合

2. document.querySelector('选择器');       // 根据指定选择器返回第一个元素对象,里面的选择器需要加符号 .class  #id

3. document.querySelectorAll('选择器');     // 根据指定选择器返回所有元素对象集合

特殊元素获取

1. document.body  // 返回body元素对象

2. document.documentElement  // 返回html元素对象

2、事件基础

1. 获取事件源

2. 注册事件(绑定事件)

3. 添加事件处理程序(采取函数赋值形式)

  • 获取事件源(按钮)
  • 注册事件(绑定事件),使用 onclick
  • 编写事件处理程序,写一个函数弹出 alert 警示框

var btn = document.getElementById('btn');

btn.onclick = function() {

  alert('你好吗'); 

};

禁止鼠标右键菜单:

contextmenu主要控制应该何时显示上下文菜单,主要用于程序员取消默认的上下文菜单

document.addEventListener('contextmenu', function(e) {

e.preventDefault();

})

禁止鼠标选中(selectstart 开始选中):

    document.addEventListener('selectstart', function(e) {

    e.preventDefault();

})

5. 方法监听注册(addEventListener):

不需要加 on

eventTarget.addEventListener(type, listener[, useCapture])

btn.addEventListener(‘click’, function(e){

              xxx;

})

同一个元素 同一个事件可以添加多个侦听器(事件处理程序)

Dom事件流:捕获阶段、冒泡阶段

事件对象(event):写到我们侦听函数的小括号里面,当形参来看

keyup 和keydown事件不区分字母大小写  a和A得到的都是65

keypress 事件区分字母大小写  a得到的是97和A得到的是65

3、操作元素

3.1 改变普通元素(如div)内容innerText、innerHTML,常见元素属性src=、href=、id=、alt=、title=等

1、element.innerText=  非标准

innerText  不识别html标签,去除空格和换行,可读写

2、element.innerHTML=  W3C标准

innerHTML 识别html标签,保留空格和换行,可读写

3.2 操作表单元素的属性type、value、checked、selected、disabled

3.3 样式属性操作

1. element.style.属性名 =    行内样式操作 权重比较高

= '0 -' + index + 'px';

2. element.className = ‘原先的类名 新类名’;  类名样式操作,适合于样式改变较多的情况

       className 会直接更改元素的类名,会覆盖原先的类名

3.4 排他思想

如果有同一组元素,我们想要某一个元素实现某种样式,需要用到循环的排他思想算法:

1. 所有元素全部清除样式(干掉其他人)

2. 给当前元素设置样式 (留下我自己)

3. 注意顺序不能颠倒,首先干掉其他人,再设置自己

<body>

    <button>按钮1</button>

    <button>按钮2</button>

    <button>按钮3</button>

    <button>按钮4</button>

    <button>按钮5</button>

    <script>

        // 1. 获取所有按钮元素

        var btns = document.getElementsByTagName('button');

        // btns得到的是伪数组  里面的每一个元素 btns[i]

        for (var i = 0; i < btns.length; i++) {

            btns[i].onclick = function() {

                // (1) 我们先把所有的按钮背景颜色去掉  干掉所有人

                for (var i = 0; i < btns.length; i++) {

                    btns[i].style.backgroundColor = '';

                }

                // (2) 然后才让当前的元素背景颜色为pink 留下我自己

                this.style.backgroundColor = 'pink';

            }

        }

        //2. 首先先排除其他人,然后才设置自己的样式 这种排除其他人的思想我们成为排他思想

    </script>

</body>

3.5 自定义属性的操作

1. 获取属性值

区别:

  1. element.属性  获取内置属性值(元素本身自带的属性)
  2. element.getAttribute(‘属性’);  主要获得自定义的属性(标准)我们程序员自定义的属性

2. 设置属性值

区别:

  1. element.属性 =  ‘值’    设置内置属性值
  2. element.setAttribute('属性', '值');  主要设置自定义的属性(标准)

3. 移除属性

  1. element.removeAttribute('属性');

4. 获取H5自定义data-开头的属性名,它只能获取data-开头的,自定义属性里面有多个-链接的单词,我们获取的时候采取 驼峰命名法

  1. 兼容性获取   element.getAttribute(‘data-index’);

element.getAttribute('data-list-name')

  1. H5新增 element.dataset.index  或者 element.dataset[‘index’]   

element.dataset. listName

dataset 是一个集合里面存放了所有以data开头的自定义属性,ie 11才开始支持

5. 节点操作

一般地,节点至少拥有nodeType(节点类型)、nodeName(节点名称)和nodeValue(节点值)这三个基本属性。

  1. 元素节点  nodeType  为 1
  2. 属性节点  nodeType  为 2
  3. 文本节点  nodeType  为 3 (文本节点包含文字、空格、换行等)

我们在实际开发中,节点操作主要操作的是元素节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值