jQuery

 

 

     匿名函数自调用

(function( window, undefined ) {


    // Map over jQuery in case of overwrite
    _jQuery = window.jQuery,

    // Map over the $ in case of overwrite
    _$ = window.$,
    
// Define a local copy of jQuery
    jQuery = function( selector, context ) {
        // The jQuery object is actually just the init constructor 'enhanced'
        return new jQuery.fn.init( selector, context, rootjQuery );
    },

})( window );

 

获取输入框的值:

用户名: <input type="text" id="username">
<button id="btn1">确定(原生版)</button>
<button id="btn2">确定(jQuery版)</button>

1、原生js代码:

<!--使用原生DOM-->
  <script type="text/javascript">
    window.onload = function () {
      var btn1 = document.getElementById('btn1')
      btn1.onclick = function () {
        var username = document.getElementById('username').value
        alert(username)
      }
    }
  </script>

2、jQuery实现:

<!--使用jQuery实现-->
    <!--本引入-->
  <script type="text/javascript" src="js/jquery-1.12.3.js"></script>
    <!--远程引入-->
  <!--<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>-->
  <script type="text/javascript">
    //绑定文档加载完成的监听
    jQuery(function () {
      var $btn2 = $('#btn2')
      $btn2.click(function () { // 给btn2绑定点击监听
        var username = $('#username').val()
        alert(username)
      })
    })
  </script>

 

jQuery核心函数: $/jQuery
  jQuery库向外直接暴露的就是$/jQuery
    当函数用: $(xxx),当对象用: $.xxx()
//1.  jQuery函数: 直接可用
  console.log($, typeof $)
  console.log(jQuery===$) // true
jQuery核心对象: 执行$()返回的对象
  得到jQuery对象: 执行jQuery函数返回的就是jQuery对象
console.log($() instanceof Object) // true

 

 

1. 作为一般函数调用: $(param)
  1). 参数为函数 : 当DOM加载完成后,执行此回调函数
//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). 参数为选择器字符串: 查找所有匹配的标签, 并将它们封装成jQuery对象
  3). 参数为DOM对象: 将dom对象封装成jQuery对象
  4). 参数为html标签字符串 (用得少): 创建标签对象并封装成jQuery对象


2. 作为对象使用: $.xxx()
  1). $.each() : 隐式遍历数组
  2). $.trim() : 去除两端的空格
/*需求2. 遍历输出数组中所有元素值*/
  var arr = [2, 4, 7]
  // 1). $.each() : 隐式遍历数组
  $.each(arr, function (index, item) {
    console.log(index, item)
  })
  // 2). $.trim() : 去除两端的空格
  var str = ' good good  study  '
  // console.log('---'+str.trim()+'---')
  console.log('---'+$.trim(str)+'---')

 

jQuery对象是一个包含所有匹配的任意多个dom元素的伪数组对象
  
基本行为
  size()/length: 包含的DOM元素个数
  [index]/get(index): 得到对应位置的DOM元素
  each(): 遍历包含的所有DOM元素
  index(): 得到在所在兄弟元素中的下标
 //需求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.length = 0
  weiArr[0] = 'atguigu'
  weiArr.length = 1
  weiArr[1] = 123
  weiArr.length = 2
  for (var i = 0; i < weiArr.length; i++) {
    var obj = weiArr[i]
    console.log(i, obj)
  }
  console.log(weiArr.forEach, $buttons.forEach) //undefined, undefined

 

 

 

 

$的工具方法:

  1、$.each(): 遍历数组或对象中的数据

/1. $.each(): 遍历数组或对象中的数据
  var obj = {
    name: 'Tom',
    setName: function (name) {
      this.name = name
    }
  }
  $.each(obj, function (key, value) {
    console.log(key, value)
  })
 2、$.trim(): 去除字符串两边的空格
 3、$.type(obj): 得到数据的类型
//3. $.type(obj): 得到数据的类型
  console.log($.type($)) // 'function'
 4、$.isArray(obj): 判断是否是数组
//4. $.isArray(obj): 判断是否是数组
  console.log($.isArray($('body')), $.isArray([])) // false true
 5、$.isFunction(obj): 判断是否是函数
//5. $.isFunction(obj): 判断是否是函数
  console.log($.isFunction($)) // true
 6、$.parseJSON(json) : 解析json字符串转换为js对象/数组
//6. $.parseJSON(json) : 解析json字符串转换为js对象/数组
  var json = '{"name":"Tom", "age":12}'  // json对象: {}

  // json对象===>JS对象
  console.log($.parseJSON(json))
  json = '[{"name":"Tom", "age":12}, {"name":"JACK", "age":13}]' // json数组: []
 
 // json数组===>JS数组
  console.log($.parseJSON(json))

 

JSON.parse(jsonString)   //json字符串--->js对象/数组

JSON.stringify(jsObj/jsArr)  //js对象/数组--->json字符串

 

 

 

                               

posted @ 2018-06-14 17:49  coderlzb  阅读(87)  评论(0编辑  收藏  举报