jQuery是一个快速、简洁的JavaScript框架,它让我们的代码变得更简捷,大大减少了我们的工作量,今天就来简单学习一下有关jQuery的语法和基础操作 ↓↓↓

NO.1 jQuery语法基础

1、使用JQuery必须先导入jquery.x.x.x.js文件。

  <script src="js/jquery-3.1.1.js"></script>

2、JQuery中的选择器:

  $("选择器名称").函数名();

 !!!注意:$是jQuery的缩写,也就是说,选择器可以使用 jQuery(":input")

3、JQuery 文档就绪函数:

 $(document).ready(function(){
   // JQuery代码
   console.log(jQuery(":input:disabled"));
 });  简写形式:$(function(){});

【JQuery文档就绪函数与window.onload的区别】

 ① window.onload必须等待网页资源(包括图片等)全部加载完成后,才能执行;
   文档就绪函数只需等到网页DOM结构加载完成后,即可执行。  ② window.onload在一个页面中,只能写一次;
   文档就绪函数在一个页面中,可以有N个。

4、JS对象和jQuery对象:

 ① 使用$("")取到的节点为jQuery对象,只能调用JQuery方法,不能调用原生JS方法。

 $("#div").click(function(){});     // √
 $("#div").onclick = function(){};   // × JQuery对象不能调用原生JS方法

 ② 同理,使用getElement系列函数取到的为JS对象,也不能调用JQuery函数。

 【jQuery对象与JS对象的相互转换】

① jQuery转JS:使用.get(index) 或 [index] 选中的就是JS对象;
    $("div").get(0).onclick = function(){}
  或 $("#div1")[0].onclick = function(){} ② JS转jQuery:使用$()包裹JS对象。
  var div = document.getElementsByTagName("div");
  $(div).click(function(){});

5、解决jQuery多库冲突问题:

 页面中如果同时引入多个JS框架,可能导致$冲突。

 解决办法:

  ① 使用jQuery.noConflict();使用JQuery放弃在全局中使用$;

  ② 使用jQuery关键字替代$,或者使用一个自执行函数:

  !function($){
    // 在自执行函数中,可以使用$替代jQuery
    // 除自执行函数外的其他区域,禁止jQuery使用$
  }(jQuery);

  代码示例:

jQuery.noConflict();
!function($){
  $(function(){
    // JS转JQuery
var div = document.getElementsByTagName("div");
$(div).click(function(){
  alert(1);
}); // JQuery转JS
$("div").get(0).onclick = function(){
   alert(1);
} });
}(jQuery);

NO.2 jQuery文档处理

一、JQuery中的DOM操作

 1、内部最后面添加

   append:在div1的内部,最后追加一个图片(在A中添加b)

    $("#div1").append("<img src='../01-HTML基本标签/img/QQ图片1.gif'/>");

   appendTo:把一个图片追加到div1的内部最后(将b添加到A中)

   $("<img src='../01-HTML基本标签/img/QQ图片2.gif'/>").appendTo("#div1");

 2、内部最前方插入

   prepend:

    $("#div1").prepend("<img src='../01-HTML基本标签/img/QQ图片1.gif'/>");

   prependTo:

    $("<img src='../01-HTML基本标签/img/QQ图片2.gif'/>").prependTo("#div1");

 3、在div1的外部,后面插入节点

   after:

    $("#div1").after("<p>这是一个p</p>");

   insertAfter:

    $("<p>11111</p>").insertAfter("#div1");

 4、在div1的外部,前面插入节点

   before:

    $("#div1").before("<p>这是一个p</p>");

   insertBefore:

    $("<p>11111</p>").insertBefore("#div1");

   用JS添加:

  var div1 = document.getElementById("div1");
  var first = div1.firstChild;
  var p = document.createElement("p");
  p.innerText = "123";
  div1.appendChild(p);
  div1.insertBefore(p,first);
  document.body.insertBefore(p,div1);

 5、为每一个选中的节点,都套一层父节点。

   wrap:

    $("div").wrap("<section></section>");

   wrapAll:

    $("div").wrapAll("<section></section>");

 6、将选中的所有节点,包裹在同一个父节点中

   wrapAll:

    $("p").wrapAll("<section></section>");   // ×

    $("div~p").wrapAll("<section></section>");   

 7、删除选中节点的父节点

   unwrap:

    $("#div1 p").unwrap();

 8、将选中节点中的所有子元素,包裹在一个新的父节点中;

   新的父节点依然是当前元素的唯一子节点

   wrapInner:

    $("#div1").wrapInner("<div></div>");

 9、将所有选中的节点,重新替换为新的节点

   replaceWith:

    $("div p").replaceWith("<span>1</span>");

   replaceAll:

    $("<span>1</span>").replaceAll("div p");

   只替换标签:   

    $("div p").wrapInner("<span></span>");
   $("div p>span").unwrap();

 10、empty:清空当前节点内容,但会保留当前节点标签

    $("#div1").empty();

   remove:删除当前节点,以及当前节点的所有子节点

    $("#div1").remove();

   detach:删除当前节点,以及当前节点的所有子节点

    $("#div1").detach();

  【remove和detach的区别】

  ① 使用remove删除的节点,如果恢复以后,将不再保留节点所绑定的事件;
  ② 使用detach删除的节点,在节点恢复以后,可以恢复节点之前所绑定的事件。   案例:↓   $("#div1").click(function(){
    alert(123);
  });   var div1 = null;
  $("button:eq(0)").click(function(){
    div1 = $("#div1").remove();
  });   $("button:eq(1)").click(function(){
    div1 = $("#div1").detach();
  });   $("button:eq(2)").click(function(){
    $("#div2").before(div1);
  });

 11、clone:克隆

    $("#div1").clone(true).empty().insertBefore("button:eq(0)");

  JS中cloneNode() 与 JQuery中clone() 区别:

cloneNode()

a. 如果不传参数或者参数传入false,表示只克隆当前节点,不克隆子节点;

b. 如果参数传入true,表示克隆当前节点以及所有子节点。

clone()

a. 无论传入true还是false都会克隆当前节点以及所有子节点;

b. 传入true表示克隆节点的同时将包括节点所绑定的事件;

c. 否则,只表示克隆节点,而不克隆绑定的事件。

二、CSS和属性操作

 1、设置节点的属性

   $("#div1").attr("class","cls");

 2、传入对象,以键值对的形式同时设置多对属性

 $("#div1").attr({
   "class":$("#div1").attr("class")+"cls1",
   "name":"name1",
   "style":"font-size:24px;color:blue"
 });

 3、取到节点的属性

   console.log($("#div1").attr("id"));

 4、删除节点属性

   $("#div1").removeAttr("class");

 5、prop 和 attr一样,都可以对节点属性进行读取和设置

  【两者的不同】

   在读取 属性名="属性值" 的属性时,attr将返回属性值和undefined;而prop将返回true或false;

   也就是说,attr要取到的属性,必须是在标签上已经写明的属性,否则无法取到。

 6、在原有class的基础上,新增class名字

   $("#div1").addClass("cls1");

 7、 删除指定的class名称,其余未删除的class名,依然保留

   $("#div1").removeClass("cls cls1");

 8、 toggleClass 切换class:如果有指定class就删除,如果没有就新增。

  $("button:eq(0)").click(function(){
    $("#div1").toggleClass("div1");
  });

 9、.html:取到或设置节点中的html代码;

   .text:取到或设置节点中的文本;

   .val:取到或设置表单元素的value值;

  console.log($("#div1").html("<p>11111</p>").html());

  console.log($("#div1").text("<p>11111</p>").text());

  console.log($("input:eq(1)").val("<p>11111</p>").val());

 10、.css():给节点添加css样式,属于行级样式表权限

   $("#div1").css("color","green");

  同时给一个节点添加多对css样式

  $("#div1").css({
    "color":"yellow",
    "font-size":"24px"
  });

  通过回调函数返回值,修改css样式: 修改div的宽

  $("button:eq(0)").click(function(){
    var id = setInterval(function(){
      $("#div1").css({
        "width":function(index,value){
          var v = parseFloat(value) +1;
          if(v>600){
            clearInterval(id);
          }
          return v + "px";
        }
      });
    },10);
  });

 11、取到或者设置节点的宽高

   console.log($("#div1").height(400));

   console.log($("#div1").width("400px"));

 12、取到节点的宽度+padding,不包含border和margin

   console.log($("#div1").innerHeight());

   console.log($("#div1").innerWidth());

 13、不传参数,表示 宽高+padding+border

   console.log($("div1").outerHeight());

    传入true,表示 宽高+padding+border+margin 

   console.log($("div1").outerWidth(true));

 14、返回一个节点,相对于浏览器左上角的偏移量

   返回一个对象{top: 31, left: 8}

   此方法,测量时,会将margin算作偏移量的距离

   console.log($("#div1").offset());

 15、 返回一个节点,相对于父容器的偏移量

   注意:

    ① 使用此方法,要求父元素必须是定位元素,如果父元素不是定位元素,则依然是相对于浏览器左上角测量

    ② 此方法,测量偏移量时,将不考虑margin,而会将margin视为当前容器的一部分

   console.log($("#div1").position());

 16、scrollTop:、设置或取到指定节点的滚动条位置

   console.log($("#div1").scrollTop(100));

关于jQuery的基础语法和操作就简单介绍到这里... ...

新知识:JQuery语法基础与操作的更多相关文章

  1. Jquery语法基础

    Jquery语法基础 一.Jquery一般语法格式为:$(selector).action() l  美元符号定义 jQuery (又称工厂函数) l  选择器(selector)“查询”和“查找” ...

  2. jQuery语法基础&选择器

    jQuery 语法 jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作. 基础语法是:$(selector).action() 美元符号定义 jQuery 选择符(select ...

  3. python语法基础-异常操作-长期维护

    ###############    python-异常的操作  ############### # 异常:python解释器遇到一个错误,会停止程序的执行,并且提示错误信息,这就是异常, # 抛出异 ...

  4. python语法基础-文件操作-长期维护

    ###############    python-简单的文件操作  ############### # python中文件的操作 # 文件操作的基本套路 # 1,打开文件,默认是是只读方式打开文件 ...

  5. jQuery基础(1) -- jQuery 语法

    通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行"操作"(actions).jQuery 语法jQuery 语法是通过选取 HTML 元素,并对选取 ...

  6. jQuery的基础语法实例

    jQuery 基础语法 jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作. 基础语法是:$(selector).action() 美元符号定义 jQuery 选择符(sele ...

  7. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  8. Oracle知识梳理(三)操作篇:SQL基础操作汇总

    Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:       CREATE TABLE  table_name ( col_ ...

  9. 【jQuery基础学习】04 jQuery中的表格操作及cookie插件的使用

    这章本来准备写成jQuery的表单操作和表格操作的. 然而昨天吧jQuery的表单操作看完,发现全部在炒之前章节的剩饭,所以就没写出来. 那么今天就来看看表格吧. 因为平常做的都是公司的内部管理系统, ...

随机推荐

  1. Cocos2D iOS之旅:如何写一个敲地鼠游戏(十一):完善游戏逻辑

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  2. SpringMVC源码分析--容器初始化(三)HttpServletBean

    在上一篇博客springMVC源码分析--容器初始化(二)DispatcherServlet中,我们队SpringMVC整体生命周期有一个简单的说明,并没有进行详细的源码分析,接下来我们会根据博客中提 ...

  3. ADFS部署过程中设置network service对证书的读取权限

    今儿在部署客户正式环境的ADFS时候遇到一问题,在配置完基于声明的身份验证后通过url访问居然报错了,这干过N回的事怎么会出错了呢,百思不得其解 网页报错如下 系统日志报错如下, 回想过程中的每一步, ...

  4. 《java入门第一季》之tcp协议下的网络编程

    tcp协议相对于udp更加安全. 首先看一下需求:服务器端开启,多个客户端同时向服务器发送数据,看哪个客户端先到达. 说明:这里我开启三个电脑实验,一台电脑写服务器端的程序,两台电脑开客户端的程序.服 ...

  5. Android反编译获取源码-android学习之旅(70)

    上一讲我们介绍了如何获取资源文件,这一节讲解如何获取源码,其实获取源码真的很简单 首先还是要有工具,Dex2jar,这个工具用于将apk解压之后的dex文件转化为jar文件还有jd-gui的这个工具能 ...

  6. 【一天一道LeetCode】#65. Valid Number

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Validat ...

  7. 【UML 建模】UML入门 之 交互图 -- 时序图 协作图详解

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 . 动态图概念 : 从静态图中抽取瞬间值 ...

  8. 实例分析exec函数

    fork()函数通过系统调用创建一个与原来进程(父进程)几乎完全相同的进程(子进程是父进程的副本,它将获得父进程数据空间.堆.栈等资源的副本.注意,子进程持有的是上述存储空间的"副本&quo ...

  9. PLSQL WEBSERVICES 发布

        一. 在Oracle EBS二次开发中,PL/SQL程序是开发人员使用频率最高的开发语言,同时也是大家最容易掌握的工具之一了,而我们也很希望将自己编写的PL/SQL程序发布为Web服务来提供给 ...

  10. SpriteBuilder中时间线播放音效的弊端

    当你美滋滋的在时间线中播放音效的时候,你要想到音效时间线并不适于播放同步于游戏事件的声音,比如碰撞和加速时. 它同样不能被用来播放背景循环的声音,这就本质上拒绝了通过timeline播放背景音乐.甚至 ...