jquery-2

作者: 倾国倾城的小饼干 | 来源:发表于2017-10-06 20:14 被阅读0次
    1. $(document).ready()

    当dom完全加载(例如html被完全解析dom树构建完成时),jquery允许你执行代码,使用此函数可以做到表现与逻辑分离,并且所有的浏览器都支持,可以放到页面的任何位置。

    1. $node.html()和$node.text()的区别

    $node.html()用于获取/修改元素的innerHtml的参数值。
    $node.text()用于获取/修改元素的innerText的参数值。
    两者都是将字符串放入html的标签中的一个函数,但是innerHtml它可以解析html标签。例如,你放入一个<a>史蒂夫</a>如果在div中它里面会出现一个带下划线的a元素,但是innerText只支持普通字符串。
    对于<div class='show'><b><i>write less do more</i></b></div>如果我们用var Html=$('.show').html()取的话结果是<b><i>write less do more</i></b>,如果我们用var Html=$('.show b i ').html()取的话结果是write less do more,而text没有第一种情况,如果我们用 var Text=$('.show').text();取的话,结果是write less do more。

    1. $.extend 的作用和用法

    用法一:合并settings和options修改并返回settings

    var settings={validate: false,limit: 2,name:'foo'};
    var options={validate: true,name:'bar'}
    $.extend(settings,options);
    

    结果:settings=={limit: 2,name:'foo',validate: true,name:'bar'}
    用法二:合并defaults和options不修改defaults.

    var empty={};
    var defaults={validate: false,limit:5,name:'foo'};
    var options={validate: true,name:'bar'};
    var settings=$.extend(empty,dafaults,optionos);
    settings=={validate: true,limit:5,name:'bar'}
    empty=={validate: true,limit: 5,name:'bar'}
    
    1. jQuery 中 data 函数的作用

    在元素上存放或读取数据,返回jquery对象。
    当参数只有一个key时候为读取该jquery对象对应的dom中存储的key对应的值。当参数为两个的时候,为向该jquery对象对应的dom中存储key-value键值对的数据。
    实例一:在一个div上存储数据
    html代码:

    <div></div>
    

    jquery代码:

    $('div').data('blah')//undefind
    $('div').data('blah','hello')//blah设置为hello
    $('div').data('blah');//hello
    

    实例二:
    html代码:

    <div></div>
    

    jquery代码:

    $('div').data('test',{first:16,last:'pizza!'})
    $('div').dat('test').first//16;
    $('div').data('test').last//pizza!
    

    实例三:
    在html5规范中div中读取预存的data-[key]值
    html代码:

    <div data-test='this is test'></div>
    

    jquery代码:

    $('div').data('test');//this is test!;
    
    1. jQuery 的链式调用

    $('#myphoto').css('border','solid 2px #ff0000').attr('alt','good')对于一个jquery对象先调用了css()函数修改样式,然后使用attr()函数修改属性,这种调用方式像链一样,所以称为链式操作。可以让代码简洁。
    除了获取某些数据的函数,比如获取属性值'attr(name)',获取集合大小‘size()’这些函数是明显返回数据的,除了这些函数之外的jquery函数都可以用于链式操作,比如设置属性‘attr(name.value)’

    1. 写出以下功能对应的 jQuery 方法

    • 给元素 $node 添加 class active,给元素 $noed 删除 class active
      $node.addClass('active') $node.removeClass('active')
    • 展示元素$node, 隐藏元素$node
      $node.show() $node.hide()
    • 获取元素$node 的 属性: id、src、title, 修改以上属性
      $node.attr('id'),$node.attr('src'),$node.attr('title') $node.attr('id','hello'),$node.attr('src','http://baidu.com'),$node.attr('title','picture')
    • 给$node 添加自定义属性data-src
      $node('data-src',' ')
    • 在$ct 内部最开头添加元素$node
      $ct.prepend('$node')
    • 在$ct 内部最末尾添加元素$node
      $ct.append('$node')
    • 删除$node
      $node.remove()
    • 把$ct里内容清空
      $ct.empty()
    • 在$ct 里设置 html <div class="btn"></div>
      $ct.html('<div class="btn"></div>')
    • 获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
      无参数是获取,有参数是设置
    width()//只包括内容
    height//只包括内容
    innerWidth()//width+padding
    innerHeight()//height+padding
    outerWidth()//width+border+padding
    outerHeight()//height+border+padding
    outerWidth(true)//padding+margin+border+width
    outerWidth('100px',true)//设置
    outerHeight(true)//height+padding+margin+border
    
    • 获取窗口滚动条垂直滚动距离
      $(window).scrollTop();
    • 获取$node 到根节点水平、垂直偏移距离
      $node.offset()
    • 修改$node 的样式,字体颜色设置红色,字体大小设置14px
      $node.css({'color': 'red','font-size':'14px'})
    • 遍历节点,把每个节点里面的文本内容重复一遍
    $('ul li').each(function(index,node){
    var str=$(node).text();
      $(node).text(str+str);
    });
    
    • 从$ct 里查找 class 为 .item的子元素
      $ct.find('.item')
    • 获取$ct 里面的所有孩子
      $ct.children()
    • 对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
      $node.parent('.ct').find('.panel')
    • 获取选择元素的数量
      $node.length
    • 获取当前元素在兄弟中的排行
      $node.index()
    1. 用jquery完成以下题目

    • 当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色
    <head>
    <script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
      <meta charset="utf-8">
      <title>JS Bin</title>
      <style>
        .btn{
          width: 50px;
          height: 40px;
          border: 1px solid red
        }
      </style>
    </head>
    <body>
      <div class='btn'>123</div>
    </body
    
    $('.btn').on('click',function(){
      $('.btn').css({background:'red'});
      setTimeout(function(){
        $('.btn').css('background','blue');
      },1000);
    });
    
    • 当窗口滚动时,获取垂直滚动距离
    $(document).on("scroll",function(){
            $(this).scrollTop();
        });
    
    • 当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为白色
    $('.btn').on('mouseenter',function(){
      $(this).css('background','red');
    });
    $('.btn').on('mouseleave',function(){
      $(this).css('background','white');
    });
    
    • 当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
    $('input').on('focus',function(){
      $(this).css('border','blue');
    });
    
    $('input').on('change',function(){
      $(this).val($(this).val().toUpperCase());
    });
    
    $('input').on('blur',function(){
      $(this).css('border','');
      console.log($(this).val());
    });
    
    • 选择 select 后,获取用户选择的内容
    <select name="" id="select">
         <option value="beijing">beijing</option>
         <option value="shanghai">shanghai</option>
         <option value="hangzhou">hangzhou</option>
       </select>
    
    $('#select').on('change',function(){
      $(this).find('option:selected').text();
    });
    
    loadmore1.jpg
    代码

    相关文章

      网友评论

        本文标题:jquery-2

        本文链接:https://www.haomeiwen.com/subject/dzwqyxtx.html