JS知識(shí)點(diǎn)整理-3

JS函數(shù)的重載

什么是重載? 方法名相同,參數(shù)不同

  • JS是否存在重載?
    --不存在,調(diào)用最后一個(gè)方法,把傳遞的參數(shù)保存到arguments里面
    -- 但是可以通過其他方式模擬重載 arguments

BOM browser object model 瀏覽器對(duì)象模型

有哪些對(duì)象?

  • navigator 獲取客戶機(jī)的信息(瀏覽器的信息)
    navigator.appName
  • screen 獲取屏幕的信息
    screen.width/ screen .height
  • localtion 請(qǐng)求url的地址
    href屬性
    -- 獲取到請(qǐng)求的url地址 location.href
    -- 設(shè)置url地址
    頁(yè)面上設(shè)置一個(gè)按鈕,綁定事件,點(diǎn)擊頁(yè)面跳轉(zhuǎn)另一個(gè)頁(yè)面
    <input type="button" value = "tiaozhuan" onclick="href1">
  • history
    history.back()
    history.forward()
  • window
    -窗口對(duì)象
    -頂層對(duì)象(所有的bom對(duì)象都是在windows里面操作的)
    方法:
    a. windows.alert() 頁(yè)面彈窗,顯內(nèi)容
    b. windows.confirm() 確認(rèn)框
    var flag = windows.confirm("顯示的內(nèi)容");
    c. prompt: 輸入的對(duì)話框
        window.promp("pls input :","0")
        window.promp("在顯示的內(nèi)容 :","默認(rèn)值")

d. open(): 可以打開一個(gè)新的窗口,
open("打開新窗口的地址","","窗口特征,比如高度和寬度")
-- 創(chuàng)建一個(gè)按鈕,點(diǎn)擊打開新的窗口

       window.open("JSDate.html","","width=200,height=300");

e. close()關(guān)閉窗口 瀏覽器兼容性差

      windows.close() 

f. 做定時(shí)器
--setInterval("JS代碼",“毫秒數(shù)”) 每3秒執(zhí)行一次js代碼

           window.setInterval("alert('123')","3000");

--setTimeout("JS代碼",“毫秒數(shù)”) 在毫秒數(shù)之后執(zhí)行,只執(zhí)行一次

          window.setTimeout(alert('12345'),"2000");

-- clearInterval() //清除setInterval

  var id1 =  window.setInterval("alert('123')","3000");
//通過setInterval會(huì)有一個(gè)返回值

-- clearTimeout() //清除setTimeout

DOM document object model: 文檔對(duì)象模型

  • 文檔:超文本文檔(超文本標(biāo)記文檔)html、xml
    對(duì)象:提供了屬性和方法
    模型: 使用屬性和方法操作不好文本標(biāo)記型文檔
    -- 可以使用js里面的dom提供的對(duì)象的屬性和方法,對(duì)標(biāo)記性文檔進(jìn)行操作
    -- 如何進(jìn)行操作? 首先 封裝成對(duì)象(需要把html中的標(biāo)簽 屬性文本內(nèi)容都封裝成對(duì)象)
    -- 要想對(duì)標(biāo)記型文檔進(jìn)行操作,解析標(biāo)記型文檔
    -- 解析過程
    根據(jù)html的層級(jí)結(jié)構(gòu) 在內(nèi)存中分配一個(gè)樹形結(jié)構(gòu) 需要把html中的每部分封裝成對(duì)象
    -document對(duì)象:整個(gè)文檔
    -element對(duì)象:標(biāo)簽對(duì)象
    -屬性對(duì)象
    -文本對(duì)象
    -- node對(duì)象,這些對(duì)象的父對(duì)象
    如果在對(duì)象里面找不到想要的方法 這個(gè)時(shí)候到Node對(duì)象里面去找
  • DOM 模型和DHTML
    DOM的三種模型:
    -- level1 將html文檔封裝成對(duì)象
    -- level2 在level1的基礎(chǔ)上添加新的功能,例如:對(duì)于事件和CSS樣式的支持
    -- level3 支持xml11.0的一些新特性
  • DHTML 是很多技術(shù)的簡(jiǎn)稱:
    -HTML: 封裝數(shù)據(jù)
    -css:使用屬性和屬性值設(shè)置樣式
    -dom :操作html文檔
    -javascript:專門指的是js的語(yǔ)法語(yǔ)句(ECMAScript)

Document對(duì)象

  • 表示整個(gè)對(duì)象
  • 常用方法
  1. write()方法:a. 向頁(yè)面輸出變量 b. 向頁(yè)面輸出html代碼
  2. getElementById():通過id得到標(biāo)簽,返回對(duì)象
   // getElementById() 通過id得到標(biāo)簽
    var input1 = document.getElementById("name");
    //得到input的value值
    alert(input1.value);
    //向input中設(shè)置一個(gè)值value
    input1.value = "cccc";
  1. getElementsByName(): 通過標(biāo)簽的name的屬性值得到標(biāo)簽,返回集合或數(shù)組
var input2 =  document.getElementsByName("byname");//傳遞的參數(shù)是name的屬性值
    alert(input2.length);
    //遍歷數(shù)組
    for (var i = input2.length - 1; i >= 0; i--) {
        document.write(input2[i].value);
        document.write("<br/>");

    }
  1. getElementsByTagName(): 通過標(biāo)簽名稱得到標(biāo)簽,返回集合或數(shù)組
//  演示getElementsByTagName方法
    var input3 = document.getElementsByTagName("input");//傳遞的參數(shù)是標(biāo)簽名稱
    alert(input3.length);

    for (var i = input3.length - 1; i >= 0; i--) {
        alert(input3[i].value);
    }
  1. 注意:只有一個(gè)標(biāo)簽或name,這個(gè)使用getEelementsByname(or TagName)返回的是一個(gè)數(shù)組,但是只有一個(gè),可以直接數(shù)組下標(biāo)獲取值
var input3 = document.getElementsByTagName("input")[0];
alert(input3.value);

Window 練習(xí)

opener:可以得到創(chuàng)建這個(gè)窗口的窗口

        //實(shí)現(xiàn)input1方法
        fucntion input1(num1.nam1){
            //需要把num1 和nam1 復(fù)制到window頁(yè)面,
            //跨頁(yè)面的操作 opener:可以得到創(chuàng)建這個(gè)窗口的窗口

            var pwin = window.opener();
            pwin.document.getElementById("userId").value = num1;
            pwin.document.getElementById("userName").value = nam1;

            //關(guān)閉窗口
            wimdow.close();
        }

練習(xí)一:在末尾添加節(jié)點(diǎn)

  • 獲取到ul標(biāo)簽
  • 創(chuàng)建li標(biāo)簽 document.createElement()
  • 創(chuàng)建文本document.createTextNode()
  • 將文本添加到li下 appendChild()
  • 將li添加到ul下
            function add1(){
            //獲取到ul標(biāo)簽
            var ul1 = document.getElementById("ulid");
            //創(chuàng)建標(biāo)簽
             var li1 = document.createElement("li");
            //創(chuàng)建文本
            var text1 = document.createTextNode("555");
            //文本加入li下面
            li1.appendChild(text1);
            //li加入ul末尾
            ul1.appendChild(li1);
        }

元素對(duì)象

  • 要操作element對(duì)象,首先必須要獲取到element,使用document的方法獲取
  • 方法:
  1. getAttribute(): 獲取的值
//獲取input標(biāo)簽
    var input1 = document.getElementById("inputid");
    alert(input1.value);

    alert(input1.getAttrinute(value));
  1. setAttribute(name,value);
  2. removeAttribute(name); 無(wú)法刪除value
  3. 獲取標(biāo)簽下的子標(biāo)簽
    a. 使用屬性childNodes 但是兼容性很差
    b. 在Element對(duì)象中查找其他節(jié)點(diǎn)的唯一有效方法就是getElementByTagName()方法,返回一個(gè)集合
//獲取到ul標(biāo)簽
        var ul2 = document.getElementById("ulid");
        //獲取子標(biāo)簽

        var licount = ul2.getElementsByTagName("li");
        alert(licount.length);

Node對(duì)象屬性一

  • nodeName
  • nodeType
  • nodeValue
  • 使用dom解析html的時(shí)候,需要html'里面的標(biāo)簽,屬性,文本都封裝成對(duì)象
  1. 標(biāo)簽節(jié)點(diǎn)對(duì)應(yīng)的值
    nodeType:1
    nodeName:大寫的標(biāo)簽名稱 eg:SPAN
    nodeValue: null
  2. 屬性節(jié)點(diǎn)對(duì)應(yīng)的值
    nodeType:2
    nodeName:屬性名稱
    nodeValue: 屬性的值
  3. 文本節(jié)點(diǎn)對(duì)應(yīng)的值
    nodeType:3
    nodeName:text
    nodeValue: 文本內(nèi)容

Node對(duì)象屬性二

  • 父節(jié)點(diǎn)
    parentNode
//Node節(jié)點(diǎn)演示:得到li
        var li2 = document.getElementById("li11");
        //得到ul
        var ul22 = li2.parentNode;
        alert(ul22.id);
  • 子節(jié)點(diǎn)
    childNodes:得到所有的子節(jié)點(diǎn),兼容性很差
    firstChild:獲取第一個(gè)子節(jié)點(diǎn)
var ul3 = document.getElementById("ulid");
        var li111 = ul3.firstChild;
        alert(li111.id);

lastChild:獲取最后一個(gè)子節(jié)點(diǎn)

var ul3 = document.getElementById("ulid");
        alert(ul3.lastChild.id);
  • 同輩節(jié)點(diǎn)
    nextSibling:返回給定節(jié)點(diǎn)的下一個(gè)兄弟節(jié)點(diǎn)
    previousSibling:返回給定節(jié)點(diǎn)的上一個(gè)兄弟節(jié)點(diǎn)
        var li33 = document.getElementById("li33");
        alert(li33.nextSibling.id);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ??DOM(文檔對(duì)象模型)是針對(duì) HTML 和 XML 文檔的一個(gè) API(應(yīng)用程序編程接口)。 ??DOM 描繪...
    霜天曉閱讀 3,866評(píng)論 0 7
  • HTML標(biāo)簽解釋大全 一、HTML標(biāo)記 標(biāo)簽:!DOCTYPE 說明:指定了 HTML 文檔遵循的文檔類型定義(D...
    米塔塔閱讀 3,530評(píng)論 1 41
  • 第3章 基本概念 3.1 語(yǔ)法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡(jiǎn)單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,514評(píng)論 0 21
  • 一、JS前言 (1)認(rèn)識(shí)JS 也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示),會(huì)使用HT...
    凜0_0閱讀 2,932評(píng)論 0 8
  • 上完自我實(shí)現(xiàn)的課程之后,一直對(duì)自己的生命意義不滿意。一個(gè)畫面感很差的理工男非要找一個(gè)適合自己綜合特征的比喻,確實(shí)有...
    兩個(gè)小人在打架閱讀 221評(píng)論 0 0

友情鏈接更多精彩內(nèi)容