Advertisement

前端学习-Dom基础知识

阅读量:

在掌握JavaScript基础语法后,紧接着就应该学习DOM技术。
DOM全称为Document Object Model,作为处理HTML文档的标准编程接口。
众所周知JavaScript是一种通用的网络脚本语言,并不能直接对HTML文档进行编辑。
而通过 DOM 我们能够访问并操作所有HTML元素及其属性,并对其进行修改、添加或删除。
DOM技术作为跨平台的技术标准可用于Java、JavaScript、VBScript等多种编程语言。

找到标签

  • 获取单个元素
复制代码
     document.getElementById('i1')
  • 获取多个元素(列表)
复制代码
    document.getElementByTagName('div')
  • 获取多个元素(列表)
复制代码
    document.getElementByClassName('c1')
a.直接找

document.getElementById("id") // 通过ID属性获取指定的一个或多个HTML元素
document.getElementsByName(name) // 基于name属性筛选出所有具有相同名称的HTML元素
document.getElementsByClassName(className) // 基于class属性筛选出所有具有相同分类标记的HTML元素
document.getElementsByTagName(tag) // 通过特定tag名称筛选出与当前类相关的HTML标记元素

b.间接找

tag=document.getELementById(‘i1’)

父节点元素标签,
所有子节点标签,
第一个子节点元素,
最后一个子节点元素,
下一个兄弟节点标签,
上一个兄弟节点标签

操作标签

文件内容操作:

提取指定标签内的全部文字内容:
通过document.getElementById方法获取id为xx的标签对象,并将其赋值给变量tag;
从文档中定位出具有id属性值为xx的标签元素,并将其赋值给局部变量tag;
将该元素节点的内容属性值赋值给变量contenten;

对标签内部文本进行重新赋值
标签.innerText=""

主要区别在于内HTML不仅可以获取文本内容还可以连带标签一起获取


input 标签用于获取用户的输入信息。
select 标签用于获取已选择选项的具体信息(通过 selectindex 属性)。
testarea 用于获取用户的输入信息。

对样式进行操作

对整体样式进行修改

className
classList
classList.add //用于添加样式
classList.remove //用于删除样式

对单个样式进行修改

  • style
    .style.color
    .style.fontSize
属性操作
复制代码
     .setAttribute('属性名','所赋值')  在某个标签内添加属性
     .removeAttribute('属性名')  删除某个标签内的某个属性
     .attributes  显示所有的属性
创建标签,并添加到HTML中

a.字符串形式
b.对象的方式
document.createElement(‘标签名’)

表单提交方式

1.input标签提交

复制代码
    <form action="网址">
          <input type="text"/>
          <input type="submit" value="提交"/>
    </form>

2.利用JavaScript进行提交(任何标签都可以)

复制代码
      <form  id="f1"action="http://www.oldboyedu.com">
            <a onclick="submitForm();"〉提交吧</a>
            </form>
            <script>
            function submitFormO{
            document.getElementById('f1').submit)
            </script>
其它:

alert(): 在执行过程中会引发阻塞,在弹出对话框显示内容;若选择确定后才继续执行。仅返回字符串类型的数据;若输入的对象类型,则会调用toString()方法转换为字符串。不允许传递多个参数;只会返回第一个提供的参数值。
console.log(): 无阻塞地在控制台显示内容。适用于各种数据类型的显示。允许多个参数供其处理。
console.info 常用于显示提示消息。
当发生错误时使用 console.error。
在特定条件下触发 console.warn。
用来进行调试操作的 console.debug。

var v = confirm('信息'); // 提示对话框
console.log(v); // 显示返回结果(当点击确认时,则显示真值;取消后则显示假值)

返回当前的URL地址。
等于当前URL地址,并且重载页面以重新加载内容。

定时器
  • setInterval
复制代码
       setInterval(function(){
            
        },时间)  //每隔一段时间执行一次

learInterval 删除定时器

  • setTimeout
复制代码
    setTimeout(function(){
        
    },时间) 隔一段时间后执行,且只执行一次

clearTimeout 删除定时器

事件

复制代码
    onclick,onblur,onfocus
    onmouseover 
    onmouseout

绑定事件的两种方式:
a.直接标签绑定

复制代码
    <input type="submit"  onclick="func()"/>

b.先获取Dom对象,然后进行绑定

复制代码
    document.getElementById('xx').onclick
    document.getElementById('xx').onfocus

this,当前触发事件的标签
a.第一种绑定方式

复制代码
    <input type='button' onclick='ClickOn(this)'>
    
    <script>
    function ClickOn(ths){
    var mybq=ths;//ths代指当前点击的标签
    ......
    }
    </script>

b.第二种绑定方式

复制代码
    <input id='i1' type='button'/>
    
    document.getElementById('i1').onclick=function(){
    this.  ; //this代指当前点击的标签
    }

一种特殊的事件绑定方式

复制代码
    <input id='i1' type='button'/>
    
    <script>
    var myid=document.getElementById('i1');
    myid.addEventListener('click',function(){console.log('aaa')},false)
    myid.addEventListener('click',function(){console.log('bbb')},false)
    </script>

点击后同时触发两种事件

词法分析

函数在调用时分成两个阶段第一个是词法分析阶段,第二个是执行阶段

复制代码
    function t1(age){
    console.log(age); //function age(){}
    var age=36;
    console.log(age);//36
    function age(){}
    console.log(age);//36
    }
    
    t1(3);

在词性分析阶段会生成一个活动对象active object(AO),它将依次解析函数内部的形式参数、局部变量以及函数声明表达式(其中函数声明表达式的优先级最高)。

在上述实现中,在词性解析阶段首次识别到了形式参数 named "age"。此时其当前值被设定为 undefined。随后它接收到了一个实际参数 value of 3;因而其值更新为 3。随后,在该函数体内重新声明了一个局部变量 named "age";由于词性解析阶段本身不会执行任何代码;所以新声明的年龄变量初始值仍设为 undefined。紧接着又声明了一个命名为 "age" 的 function 类型对象;因为该对象在语法优先级上位于其他表达式之上;所以它的类型也被确定为此处所指的对象类型。紧接着将年龄字段赋值为 36,则第二次 console.log 输出的结果是 36.由于该 function 没有被调用就跳过了流程;最终,在最后一次 console.log 操作时得到的结果仍然是 36。

全部评论 (0)

还没有任何评论哟~