Python学习笔记Day16 - JS的DOM操作

【DOM】Document Object Model

1、找到标签

a. 直接找

document.getElementById('i1')             根据ID获取一个标签     ->> <div><div/>
document.getElementsByName('n1')          根据name属性获取标签集合(列表)
document.getElementsByClassName('div')    根据class属性获取标签集合
document.getElementsByTagName('c1')       根据标签名获取标签集合

b. 间接找

tag = document.getElementById('i1')
tag.parentElement           // 父节点标签元素
    children                // 所有子标签
    firstElementChild       // 第一个子标签元素
    lastElementChild        // 最后一个子标签元素
    nextElementSibling     // 下一个兄弟标签元素
    previousElementSibling  // 上一个兄弟标签元素

2、操作标签

a. innerText

标签.innerText        获取标签中的文本内容
标签.innerText = ""   对标签内部文本进行重新赋值

b. className、classList

标签.className = 'c1'       直接整体做操作
标签.classList              获取样式列表
标签.classList.add('c1')    添加指定样式
标签.classList.remove('c1') 删除指定样式

c. 绑定点击事件

<div onclick='func();'>点我</div>
<div onfocus='func();'>点我</div>
<div onblur='func();'>点我</div>
<script>
    function func(){

    }
</script>

d. checkbox

获取值
checkbox对象.checked
设置值
checkbox对象.checked = true

3、文本操作

.innerText   只获取文本,过滤标签,赋值时识别为字符串
.innerHTML   全部内容
.value      input标签取值赋值
            textarea标签取值赋值
            select标签获取赋值选中值
                (obj.selectedIndex = 1)

4、绑定事件

onclick
onfocus
onblur
新版HTML已支持placeholder="请输入关键字"自动实现onfocus和onblur功能,并且不用写js代码

5、样式操作

.classList #对样式整体进行操作
.style.color ='red';  #直接在标签上添加style

6、属性操作

.setAttribute('name','alex')    #设置属性
.removeAttribute('value')   #移除属性
.attributes     #获取所有索引与属性名的k-v字典

7、创建标签

// 对象方式
var tag = document.createElement('a');
tag.innerText = "wupeiqi";
tag.className = "c1";
tag.href = "http://www.cnblogs.com/wupeiqi";
# var p = '<p></p>'
# p.appendChild(tag);
document.getElementById('i1').appendChild(tag)  # 传入对象
// 字符串方式
var tag = "<a class='c1' href='http://www.cnblogs.com/wupeiqi'>wupeiqi</a>";
document.getElementById('i1').insertAdjacentHTML('beforeEnd',tag);  # 传入字符串
    //注意:第一个参数只能是'beforeBegin'、 'afterBegin'、 'beforeEnd'、 'afterEnd'

8、提交表单

配合onclick()可以使任何标签点击提交
document.getElementById('i1').submit()

9、弹窗,定时,刷新

console.log                 输出框
alert                       弹出框
confirm                     确认框,返回True或False
// URL和刷新
location.href               获取URL
location.href = "url"       重定向
location.reload()           重新加载
// 定时器
obj = setInterval({},5000)  多次定时器
clearInterval(obj)          清除多次定时器
setTimeout({},5000)         单次定时器
clearTimeout()              清除单次定时器

10、事件

样式 结构 行为 相分离
在JS里找到标签,然后.onclick = "function(){}"
this 指针,指向当前调用的对象

  • 1.定义时this绑定:

      <input type='button' onclick='ClickOn(this)'>   #直接传入this,指向当前调用的对象
      function ClickOn(self){
          //self 代指当前点击的标签
      }
    
  • 2.调用时this绑定:

      <input id='i1' type='button'>
      document.getElementById('i1').onclick = function(){
          //this 代指当前点击的标签
      }
    
  • 3.事件监听绑定:

      tag1.addEventListener('click',function(){},false)    #true捕捉,false冒泡
      事件的冒泡(向上)和捕捉(向下)
    
posted @ 2020-07-05 15:21  Jerome12138  阅读(147)  评论(0编辑  收藏  举报