Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 中国一级毛片录像,欧美高跟鞋一区二区视频,国产网站视频

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          jQuery 如何判斷Dom對象是否存在

          jQuery 如何判斷Dom對象是否存在

          ocument 對象

          每個載入瀏覽器的 HTML 文檔或元素都會成為 Document 對象。

          Document 對象使我們可以從腳本中對 HTML 頁面中的所有元素進行訪問。


          Javascript 訪問節點方法:

          var oLi=document.getElementsByTagName("li");
          var oLi=document.getElementById("myHeader");
          var oLi=document.getElementsByName("myInput"); //通過name屬性訪問
          

          我們經常要檢測一個HTML中DOM對象是否為空(或是否存在)。

          var $jObject=$('#btn');
          alert($jObject );

          我們會發現, $jObject 永遠不會為空。因為 $() 方法查找對象, 始終都會返回一個jQuery 對象的。


          解決辦法:

          首先我們就要把jQuery對象轉換成javaScritp對象。

          var dom=$jObject[0]; alert(dom);


          或者直接判斷jQuery對象的長度為否為0

          包:是指有權訪問另外一個函數作用域中的變量的函數.JavaScript創建閉包的常見方式就是在一個函數內部創建另外一個函數.

          JavaScript的閉包類似于Java類中使用get/set方法操作類的私有變量,JavaScript閉包是函數的嵌套,內部的函數可以操作上一層的變量屬性,同時此函數可以被外部所調用.

          在javascript中沒有塊級作用域,一般為了給某個函數申明一些只有該函數才能使用的局部變量時,我們就會用到閉包,這樣我們可以很大程度上減少全局作用域中的變量,凈化全局作用域。閉包是一種設計原則,它通過分析上下文,來簡化用戶的調用,讓用戶在不知曉的情況下,達到他的目的。使用閉包有好處,也有壞處,濫用閉包會造成內存的大量消耗。

          代碼示例

          代碼1:

          function foo(x) {

          var tmp=3;

          return function (y) {

          alert(x + y + (++tmp));

          }

          }

          var bar=foo(2); // bar 現在是一個閉包

          bar(10);

          代碼2:

          var add=(function () {

          var counter=0;

          return function () {return counter +=1;}

          })();

          add();

          add();

          add();

          // 計數器為 3

          代碼3:

          var App=function() {

          var isRTL=false;

          var isIE8=false;

          var isIE9=false;

          var isIE10=false;

          return {

          init: function() {},

          initAjax: function() {}

          }

          }();

          jQuery(document).ready(function() {

          App.init(); // init

          });

          apply()方法和call()方法

          1. 每個函數都包含兩個非繼承而來的方法:apply()和call()。

          2. 它們的用途相同,都是在特定的作用域中調用函數。

          3. 接收參數方面不同,apply()接收兩個參數,一個是函數運行的作用域(this),另一個是參數數組。call()方法第一個參數與apply()方法相同,但傳遞給函數的參數必須列舉出來。

          代碼示例

          代碼1:

          function sum(num1, num2) {

          return num1 + num2;

          }

          console.log(sum.call(window, 10, 10)); //20

          console.log(sum.apply(window,[10,20])); //30

          代碼2:

          window.firstName="diz";

          window.lastName="song";

          var myObject={ firstName: "my", lastName: "Object" };

          function HelloName() {

          console.log("Hello " + this.firstName + " " + this.lastName, " glad to meet you!");

          }

          HelloName.call(window); //或 .call(this);

          HelloName.call(myObject);

          運行結果為:

          Hello diz song glad to meet you!

          Hello my Object glad to meet you!

          從示例中可以看出apply()和call()能夠擴充函數賴以運行的作用域

          方法的覆蓋和重寫

          JavaScript中沒有方法的重載這種概念,只有覆蓋,不管方法的參數個數多少,同名的最后一個方法會將前面的方法覆蓋掉.

          <script type="text/javascript">

          function sayHello() {

          console.log("Hello----1");

          }

          function sayHello() {

          console.log("Hello----2");

          }

          function sayHello() {

          console.log("Hello----3");

          }

          sayHello();

          </script>

          如果要實現重載,可采用此種方法

          <script type="text/javascript">

          function sayHi() {

          if (arguments.length==1) {

          console.log(arguments[0] + "sayHi---1");

          } else if (arguments.length==2) {

          console.log(arguments[0] + "," + arguments[1] + "sayHi---2");

          } else if (arguments.length==3) {

          console.log(arguments[0] + "," + arguments[1]+","+arguments[2] + "sayHi---3");

          }

          }

          sayHi("Tom");

          sayHi("Tom", "lucy");

          sayHi("Tom","lucy","jame");

          </script>

          回調函數

          回調函數示例

          <script language="javascript" type="text/javascript">

          // 2.傳入要回調的方法名

          function main(callBack) {

          console.log("I am main function");

          console.log("Invoke callback function..");

          // 3.參數名稱和此處的方法名稱對應

          callBack();

          }

          function b() {

          console.log("function:b");

          }

          function c() {

          console.log("function:c");

          }

          // 1.要回調的函數作為參數

          main(b);

          main(c);

          </script>

          protocol 屬性

          定義和用法

          protocol 屬性是一個可讀可寫的字符串,可設置或返回當前 URL 的協議。

          圖示

          代碼示例

          <script type="text/javascript">

          document.write(location.protocol);

          </script>

          輸出:

          http:

          兩個等號和三個等號的區別

          ===規則:

          1. 如果類型不同,就[不相等]

          2. 如果兩個都是數值,并且是同一個值,那么[相等];(!例外)的是,如果其中至少一個是NaN,那么[不相等]。(判斷一個值是否是NaN,只能用isNaN()來判斷)

          3. 如果兩個都是字符串,每個位置的字符都一樣,那么[相等];否則[不相等]。

          4. 如果兩個值都是true,或者都是false,那么[相等]。

          5. 如果兩個值都引用同一個對象或函數,那么[相等];否則[不相等]。

          6. 如果兩個值都是null,或者都是undefined,那么[相等]。

          ==規則:

          1. 如果兩個值類型相同,進行===比較。

          2. 如果兩個值類型不同,他們可能相等。根據下面規則進行類型轉換再比較:

            a. 如果一個是null. 一個是undefined,那么[相等]。

            b. 如果一個是字符串,一個是數值,把字符串轉換成數值再進行比較。

            c. 如果任一值是 true,把它轉換成 1 再比較;如果任一值是 false,把它轉換成 0 再比較。

            d. 如果一個是對象,另一個是數值或字符串,把對象轉換成基礎類型的值再比較。對象轉換成基礎類型,利用它的toString或者valueOf方法。 js核心內置類,會嘗試valueOf先于toString;例外的是Date,Date利用的是toString轉換。非js核心的對象,令說(比較麻 煩,我也不大懂)

            e. 任何其他組合,都[不相等]。

          其他瑣碎

          1. window.parent和window.opener

          window.parent針對frame

          window.opener針對的是打開子窗口的父窗口

          可操作響應頁面的屬性和調用相關方法

          2. instanceof 運算符

          在 JavaScript 中,判斷一個變量的類型嘗嘗會用 typeof 運算符,在使用 typeof 運算符時采用引用類型存儲值會出現一個問題,無論引用的是什么類型的對象,它都返回 “object”。

          判斷是否為數組

          if(dataList instanceof Array){}console.log(Object instanceof Object);//true

          console.log(Function instanceof Function);//true

          console.log(Number instanceof Number);//false

          console.log(String instanceof String);//false

          console.log(Function instanceof Object);//true

          console.log(Foo instanceof Function);//true

          console.log(Foo instanceof Foo);//false

          3. 判斷是否為空對象

          function isEmptyObject(obj) { for (var key in obj) { return false; } return true;}

          • 看下面的動圖,了解一下本例最后實現的效果。

          attr();本身是設置標簽屬性用的,這里用來設置樣式和獲取樣式。

          addClass();這個是追加樣式。

          removeClass();這是移除樣式。

          toggleClass();這是切換樣式,切換的意思很簡單,有就刪除,沒有就追加。

          hasClass();判斷樣式是否存在。

          一、我們先做一個盒子,給它最基本的樣式,就是寬和高。

          二、忘記了,還要鏈接jQuery庫,我們就連官網的庫吧。

          三、現在打開網頁什么都看不見,我們加個按鈕“添加紅色背景”,同時也添加一個樣式addred。

          四、現在可以添加按鈕的點擊事件了,點擊事件先留個空,一步一步來。

          五、接下來可以在事件里面放操作了,這里就給box追加樣式addred。

          六、后面就不啰嗦了,一口氣直接再添加三個按鈕,三個空的點擊事件。

          七、先試著去掉背景。

          八、忘記了,還要添加一個邊框樣式togborder。

          九、toggleClass()它是有則刪,無則加,所以稱為切換。

          十、hasClass()是判斷樣式是否存在,這里我們用alert消息框輸出結果。

          十一、忘記一個方法了,那就是attr(),再加一個按鈕,再加一個點擊事件。

          本文來源于,落筆承冰原創,下面是源碼。


          主站蜘蛛池模板: 91久久精品无码一区二区毛片| 在线日韩麻豆一区| 成人毛片无码一区二区| 一区二区三区91| 少妇精品无码一区二区三区| 无码国产伦一区二区三区视频| 在线观看一区二区三区av| 日本一区二区三区在线视频观看免费| 少妇激情AV一区二区三区| 国产在线观看一区精品| 国产精品资源一区二区| 日韩精品人妻一区二区三区四区| 鲁丝片一区二区三区免费| 丝袜美腿高跟呻吟高潮一区| 亚洲欧美日韩国产精品一区| 亚洲一区二区三区无码国产| 日韩视频一区二区三区| 国产精品乱码一区二区三区| 国产精品无码不卡一区二区三区| 午夜爽爽性刺激一区二区视频| 亚洲日韩国产欧美一区二区三区| 中文字幕一区二区三区在线不卡| 一区二区三区电影在线观看| 综合激情区视频一区视频二区| 国产精品无码亚洲一区二区三区| 日韩一区二区视频| 天天视频一区二区三区| 国产精品视频一区二区猎奇| 精品动漫一区二区无遮挡| 人妻天天爽夜夜爽一区二区| 风间由美性色一区二区三区 | 人妻aⅴ无码一区二区三区| 高清一区二区三区| 日韩免费无码一区二区视频| 在线播放偷拍一区精品| 久热国产精品视频一区二区三区| 蜜桃传媒视频麻豆第一区| 亚洲爽爽一区二区三区| 亚洲福利视频一区二区| 亚洲国产综合精品一区在线播放| 精品国产一区二区三区在线观看|