1. 程式人生 > >【jQuery】1、jQuery的二把利器

【jQuery】1、jQuery的二把利器

一、概括

1. jQuery核心函式
  * 簡稱: jQuery函式($/jQuery)
  * jQuery庫向外直接暴露的就是$/jQuery
  * 引入jQuery庫後, 直接使用$即可
    * 當函式用: $(xxx)
    * 當物件用: $.xxx()
2. jQuery核心物件
  * 簡稱: jQuery物件
  * 得到jQuery物件: 執行jQuery函式返回的就是jQuery物件
  * 使用jQuery物件: $obj.xxx()
<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>jQuery的二把利器</title>
</head>
<body>
<button>測試</button>

<script type="text/javascript" src="js/jquery-1.12.3.js"></script>
<script type="text/javascript">
  // 1.jQuery函式:直接可用
  console.log($,typeof $)  // ƒ(selector, context){}  'function'
  console.log(jQuery===$)  // true
  // 2.jQuery物件:執行函式得到它
  console.log($(),$() instanceof Object)  // jQuery.fn.init  'true'

  //jQuery庫實際整體模型
  /*
  (function (window) {
    var jQuery = function () {
      return new xxx()
    }
    window.$ = window.jQuery = jQuery
  })(window)
   */
</script>
</body>
</html>

 二、jQuery核心函式

1. 作為一般函式呼叫: $(param)
  1). 引數為函式 : 當DOM載入完成後,執行此回撥函式
  2). 引數為選擇器字串: 查詢所有匹配的標籤, 並將它們封裝成jQuery物件
  3). 引數為DOM物件: 將dom物件封裝成jQuery物件
  4). 引數為html標籤字串 (用得少): 建立標籤物件並封裝成jQuery物件
2. 作為物件使用: $.xxx()
  1). $.each() : 隱式遍歷陣列
  2). $.trim() : 去除兩端的空格
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>03_jQuery核心函式</title>
</head>

<body>

<div>
  <button id="btn">測試</button>
  <br/>

  <input type="text" name="msg1"/><br/>
  <input type="text" name="msg2"/><br/>

</div>
<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">
  /*
   需求1. 點選按鈕: 顯示按鈕的文字, 顯示一個新的輸入框
   需求2. 遍歷輸出陣列中所有元素值
   需求3. 去掉"  my onedean  "兩端的空格
   */

  /*需求1. 點選按鈕: 顯示按鈕的文字, 顯示一個新的輸入框*/
  //1.1). 引數為函式 : 當DOM載入完成後,執行此回撥函式
  $(function () { // 繫結文件載入完成的監聽
    // 1.2). 引數為選擇器字串: 查詢所有匹配的標籤, 並將它們封裝成jQuery物件
    $('#btn').click(function () { // 繫結點選事件監聽
      // 事件回撥函式中的this是什麼? 發生事件的dom元素(<button>)
      // alert(this.innerHTML)
      // 1.3). 引數為DOM物件: 將dom物件封裝成jQuery物件
      alert($(this).html())
      // 1.4). 引數為html標籤字串 (用得少): 建立標籤物件並封裝成jQuery物件
      $('<input type="text" name="msg3"/><br/>').appendTo('div')
    })
  })

  /*需求2. 遍歷輸出陣列中所有元素值*/
  var arr = [2, 4, 7]
  // 1). $.each() : 隱式遍歷陣列
  $.each(arr, function (index, item) {
    console.log(index, item)
  })

  /*需求3. 去掉"  my onedean  "兩端的空格*/
  // 2). $.trim() : 去除兩端的空格
  var str = ' my onedean  '
  // console.log('---'+str.trim()+'---')
  console.log('---'+$.trim(str)+'---')

</script>
</body>

</html>

 二、jQuery核心物件

1. jQuery物件是一個包含所有匹配的任意多個dom元素的偽陣列物件
2. 基本行為
  * size()/length: 包含的DOM元素個數
  * [index]/get(index): 得到對應位置的DOM元素
  所有DOM元素
  * index(): 得到* each(): 遍歷包含的在所在兄弟元素中的下標
<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>04_jQuery物件</title>
</head>

<body>
<button>測試一</button>
<button>測試二</button>
<button id="btn3">測試三</button>
<button>測試四</button>
<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">

  /*
   需求:
   需求1. 統計一共有多少個按鈕
   需求2. 取出第2個button的文字
   需求3. 輸出所有button標籤的文字
   需求4. 輸出'測試三'按鈕是所有按鈕中的第幾個
   */
  //需求1. 統計一共有多少個按鈕
  var $buttons = $('button')
  /*size()/length: 包含的DOM元素個數*/
  console.log($buttons.size(), $buttons.length)

  //需求2. 取出第2個button的文字
  /*[index]/get(index): 得到對應位置的DOM元素*/
  console.log($buttons[1].innerHTML, $buttons.get(1).innerHTML)

  //需求3. 輸出所有button標籤的文字
  /*each(): 遍歷包含的所有DOM元素*/
  /*$buttons.each(function (index, domEle) {
    console.log(index, domEle.innerHTML, this)
  })*/
  $buttons.each(function () {
    console.log(this.innerHTML)
  })


  //需求4. 輸出'測試三'按鈕是所有按鈕中的第幾個
  /*index(): 得到在所在兄弟元素中的下標*/
  console.log($('#btn3').index())  //2

  /*
  1. 偽陣列
    * Object物件
    * length屬性
    * 數值下標屬性
    * 沒有陣列特別的方法: forEach(), push(), pop(), splice()
   */
  console.log($buttons instanceof Array) // false
  // 自定義一個偽陣列
  var weiArr = {}
  weiArr[0] = 'abc'
  weiArr[1] = 123
  weiArr[2] = false
  weiArr.length = 3
  for (var i = 0; i < weiArr.length; i++) {
    var obj = weiArr[i]
    console.log(i, obj)
  }
  console.log(weiArr.forEach, $buttons.forEach) //undefined, undefined

</script>
</body>
</html>