jQuery基础

作者: 饥人谷_Leon | 来源:发表于2017-07-29 16:53 被阅读0次

题目1: jQuery 能做什么

jQuery 是一个高效、精简并且功能丰富的 JavaScript 工具库。它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作、事件处理、动画和 Ajax 操作更加简单。

题目2: jQuery 对象和 DOM 原生对象有什么区别?如何转化?

区别

  • 1、jquery选择器得到的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是两种不同的对象类型,两者不等价;
  • 2、jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法. 乱使用会报错。

转化
jQuery对象转成DOM对象: 两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index);
(1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。代码如下:

var $v =$("#v") ; //jQuery对象 
var v=$v[0]; //DOM对象 alert(v.checked) //检测这个checkbox是否被选中

(2)jQuery本身提供,通过.get(index)方法,得到相应的DOM对象 如:代码如下:

var $v=$("#v"); //jQuery对象
 var v=$v.get(0); //DOM对象
 alert(v.checked) //检测这个checkbox是否被选中

DOM对象转成jQuery对象: 对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。$(DOM对象) 如:

var v=document.getElementById("v"); //DOM对象
 var $v=$(v); //jQuery对象

转换后,就可以任意使用jQuery的方法了。 通过以上方法,可以任意的相互转换jQuery对象和DOM对象。需要再强调注意的是:DOM对象才能使用DOM中的方法,jQuery对象是不可以用DOM中的方法。
参考文档

题目3:jQuery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?

  • .on()方法 提供绑定事件处理的所有功能。并且比.click(function(){})占用内存小,推荐使用.

.on( events [, selector ] [, data ], handler(eventObject) )(jQuery 1.7添加)
事件名称可以添加指定的event namespaces(命名空间) 来简化删除或触发事件。例如,"click.myPlugin.simple"为 click 事件同时定义了两个命名空间 myPlugin 和 simple。通过上述方法绑定的 click 事件处理,可以用.off("click.myPlugin") 或 .off("click.simple")删除绑定到相应元素的Click事件处理程序,而不会干扰其他绑定在该元素上的“click(点击)” 事件。

$('xxx').on.('click','a',function(){})//例子
  • bind:从jQuery 1.7开始,on方法是将事件处理程序绑定到文档(document)的首选方法。对于早期版本,.bind()方法用于直接附加一个事件处理程序到元素上。处理程序附加到jQuery对象中当前选中的元素,所以,在.bind()绑定事件的时候,这些元素必须已经存在。
  • delegate:从jQuery 1.7开始,.delegate()已经被.on()方法取代。但是,对于早期版本,它仍然是使用事件代理(委派)最有效的方式。以下两种是两种方法的等效方法:
// jQuery 1.4.3+
$( elements ).delegate( selector, events, data, handler );
// jQuery 1.7+
$( elements ).on( events, selector, data, handler );
  • live:从jQuery1.7开始, .live()方法已经过时了。请使用.on()附加事件处理程序。 旧版本的jQuery中用户,应优先使用.delegate()来取代.live()。
$(selector).live(events, data, handler);                // jQuery 1.3+
$(document).delegate(selector, events, data, handler);  // jQuery 1.4.3+
$(document).on(events, selector, data, handler);        // jQuery 1.7+

  • off:off()方法移除用.on()绑定的事件处理程序。如果一个简单的事件名称,比如提供"click",那么所有 这种类型的事件(包括直接和委派)从元素上被移除。对于写插件,或者基于大型代码而编程时,最好是通过名字空间进行事件绑定或移除操作,这样就不会意外的移除其它代码添加的事件处理函数。在一个特定的命名空间中的所有类型的事件,可以从一个元素中删除,只是提供了一个命名空间,比如 ".myPlugin"。在移除事件处理时,至少要提供名字空间或事件名.

on事件代理

  • 优势:可以给未创建的后代元素绑定事件外,代理事件的另一个好处就是,当需要监视很多元素的时候,代理事件的开销更小。
    例如,在一个表格的 tbody 中含有 1,000 行,下面这个例子会为这 1,000 元素绑定事件:
$("#dataTable tbody tr").on("click", function(event){
  alert($(this).text());
});

委派事件的方法只有一个元素的事件处理程序,tbody,并且事件只会向上冒泡一层(从被点击的tr 到 tbody ):

$("#dataTable tbody").on("click", "tr", function(event){
  alert($(this).text());
});

注意: 委托事件不能用于SVG.
使用对象同时添加多个事件处理函数

<!DOCTYPE html>
<html>
<head>
  <style>
.test { color: #000; padding: .5em; border: 1px solid #444; }
.active { color: #900;}
.inside { background-color: aqua; }
</style>
  <script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
  <div class="test">test div</div>
<script>$("div.test").on({
  click: function(){
    $(this).toggleClass("active");
  },
  mouseenter: function(){
    $(this).addClass("inside");
  },
  mouseleave: function(){
    $(this).removeClass("inside");
  }
});</script>
 
</body>
</html>

参考文档
JQuery中文API

题目4:jQuery 如何展示/隐藏元素?

  • 隐藏元素:.hide( [duration ] [, easing ] [, complete ] )
  • 展示元素:.show( [duration ] [, easing ] [, complete ] )

题目5: jQuery 动画如何使用?

  • $('xxx').animate( properties [, duration ] [, easing ] [, complete ] )
    描述: 根据一组 CSS 属性,执行自定义动画。

Example: 第一个按钮要执行的动画中,使用了 queue: false 选项,该动画使元素的宽度扩大到了总宽 90%,并且 文字大小也变大了。一旦字体大小改变完了,边框的动画就会开始。 第二个按钮要执行的动画中,包含了一系列动画,当前一个动画完成时,后一个动画就会开始。

<!DOCTYPE html>
<html>
<head>
  <style>
div {
  background-color:#bca;
  width:200px;
  height:1.1em;
  text-align:center;
  border:2px solid green;
  margin:3px;
  font-size:14px;
}
button {
  font-size:14px;
}
</style>
  <script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
  <button id="go1">&raquo; Animate Block1</button>
<button id="go2">&raquo; Animate Block2</button>
<button id="go3">&raquo; Animate Both</button>
 
<button id="go4">&raquo; Reset</button>
<div id="block1">Block1</div>
<div id="block2">Block2</div>
<script>
 
$( "#go1" ).click(function(){
  $( "#block1" ).animate( { width: "90%" }, { queue: false, duration: 3000 })
     .animate({ fontSize: "24px" }, 1500 )
     .animate({ borderRightWidth: "15px" }, 1500 );
});
 
$( "#go2" ).click(function(){
  $( "#block2" ).animate({ width: "90%" }, 1000 )
     .animate({ fontSize: "24px" }, 1000 )
     .animate({ borderLeftWidth: "15px" }, 1000 );
});
 
$( "#go3" ).click(function(){
  $( "#go1" ).add( "#go2" ).click();
});
 
$( "#go4" ).click(function(){
  $( "div" ).css({ width: "", fontSize: "", borderWidth: "" });
});
 
</script>
 
</body>
</html>

题目6:如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?

  • $('xxx').html()不加参数就是获取集合中第一个匹配元素的HTML内容.
    $('xxx').html(htmlString)设置每一个匹配元素的html内容.
  • $('xxx').text()得到匹配元素集合中每个元素的文本内容结合,包括他们的后代,
    $('xxx').text(textSting)设置匹配元素集合中每个元素的文本内容为指定的文本内容.

题目7:如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?

  • $().val()获取匹配的元素集合中第一个元素的当前值
    .val()方法主要用于获取表单元素的值,比如 input, select 和 textarea。对于 <select multiple="multiple"> 元素, .val()方法返回一个包含每个选择项的数组,如果没有选择性被选中,它返回null。
  • $().val(value)设置匹配的元素集合中每个元素的值例子
<!DOCTYPE html>
<html>
<head>
  <style>
 
  p { color:blue; margin:8px; }
  </style>
  <script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
  <input type="text" value="some text"/>
  <p></p>
<script>
    $("input").keyup(function () {
      var value = $(this).val();
      $("p").text(value);
    }).keyup();
</script>
 
</body>
</html>
<!DOCTYPE html>
<html>
<head>
  <script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
 
  <p>Type something and then click or tab out of the input.</p>
  <input type="text" value="type something" />
 
<script>
  $('input').bind('blur', function() {
    $(this).val(function( i, val ) {
      return val.toUpperCase();
    });
  });
  </script>
 
</body>
</html>
  • $('xxx").attr(attributeName)获取匹配的元素集合中的第一个元素的属性的值
  • $('xxx").attr(attributeName,value)设置每一个匹配元素的一个或多个属性。
$('#greatphoto')
.attr('title', 'Photo by Kelly Clark')

$('#greatphoto').attr({
  alt: 'Beijing Brush Seller',
  title: 'photo by Kelly Clark'
});

相关文章

  • 2019-02-13jQuery

    一 jQuery基础 先导入jQuery文件

  • jQuery

    jQuery框架 一、jQuery基础 添加jQuery到网页 jQuery基本语法 二、jQuery 选择器 示...

  • Day19--JQuery

    JQuery 基础:

  • jQuery

    jQuery基础

  • JQuery 基础

    JQuery 基础:

  • 学jQuery:这些就够了!

    废话不多说,进入正题下面就是有关jQuery的语法和基础操作。 jQuery语法基础 一、使用JQuery必须先导...

  • JQuery

    JQuery 基础:概念快速入门JQuery对象和JS对象区别与转换选择器DOM操作案例 JQuery 基础: 概...

  • JQuery学习笔记

    JQuery基础语法 基础语法是:$(selector).action() 美元符号定义 jQuery 选择符(s...

  • 25.jQuery基础

    内容 jQuery 基础:

  • JQuery知识总结

    JQuery基础 jquery获取元素的方法:$()在 jQuery 中,只有一个全局变量 $,这是 jQuery...

网友评论

    本文标题:jQuery基础

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