`
liuqi8839
  • 浏览: 8445 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

初探jQuery

阅读更多

 

<div class="homepage-wrapper">
  <h2 id="home-title">Welcome to jQuery Travels - Traversing the DOM since 2006</h2>
  <p>Fly to New York today for as little as <span>$299.99</span></p>
</div>

 

在jQuery中,可以通过查找标签来操作标签内的内容,例如

$("p").text();

 

 可以得到<p>标签内的内容:“Fly to New York today for as little as <span>$299.99</span>”,同理,

$("span").text();

 就可以得到<span>标签内的“$299.99”。

 

同时,我们可以通过'class'或者'id'来查找标签,对于'class'属性,在前面加个".",对于'id'属性,前面加:“#”,例如:

 

$(".homepage-wrapper");

 

$("#home-title");

通过$("div").find("h2"),也能找到<h2>标签,这种做法在存在多个同样的标签时作用更加明显:

 

<div id="vacations-wrapper">
  <h1>Vacation Packages</h1>
  <ul>
    <li class="vacation america">
      <h2>San Francisco, California</h2>
      <span class="details">$700</span>
    </li>
    <li class="vacation america">
      <h2>Washington DC, District of Columbia</h2>
      <span class="details">$400</span>
    </li>
    <li class="vacation europe">
      <h2>London, England</h2>
      <span class="details">$1,100</span>
    </li>
    <li class="vacation asia">
      <h2>Shanghai, China</h2>
      <span class="details">$
    </li>
  </ul>
</div>

 在上面的代码中,存在多个<li>标签,通过:

 

$(".vacation");

 

我们找到的就是所有包含"class='vacation'"的标签,也就找到了这里面的每一个<li>标签,如果我们用:

 

$(".asia");

找到的就只有包含"class='asia'"的<li>标签 。

 

 

我们还可以利用.find()来查找下一层的标签:

 

$(".asia").find("h2");

 这样整个<h2>标签就被找到了,同样,.find()也能通过class和id查找标签,这里就不做演示了。

 

还有一种.children()方法:

 

$(".asia").children("h2");

 找到的是含有属性"class=''asia"的标签的所有子标签,与之对应的是.parent()方法,顾名思义就是找到父标签。

 

我们也可以通过multiple selectors,同时查找多个标签:

 

$(".asia,.europe");

 在存在多个同样的标签时,我们只需要其中一个,可以通过之前提到的通过'id'和'class'查找,也可以用.first(),.last()等方法:

 

 

$("#vacations").children("li").first();    //查找id为vacation标签的第一个子标签
$("#vacations").children("li").last();     //查找id为vacation标签的最后一个子标签
$("#vacations").children("li").odd();      //查找id为vacation标签的中间子标签
$("#vacations").children("li").even();     //查找id为vacation标签的第一个子标签和最后一个子标签

 除了第一个、最后一个、中间标签,其他位置的标签可以用.next()或者.prev()方法:

 

 

$("#vacations").children("li").first().next();
//查找id为vacation标签的第一个子标签后的一个子标签
$("#vacations").children("li").last().prev();
 //查找id为vacation标签的最后一个子标签的上一个子标签

在不知道页面是否完全加载就对页面操作会造成很多没必要的错误,在接下来关于操作界面的介绍之前,我们先要学会等页面加载完毕再执行代码:

 $(document).ready(function() {
});

 加上这一段代码后,你就可以在大括号{}中大胆加上你需要的代码了。例如:

 $(document).ready(function() {
     $("li").first().remove();
});

通过.remove()方法,我们可以在页面中删除第一个<li>标签以及<li>标签内的所有内容。

接下来,我们试一下新的实例:

<div id="tours">
  <h1>Guided Tours</h1>
  <ul>
    <li class="usa tour">
      <h2>New York, New York</h2>
      <span class="details">$1,899 for 7 nights</span>
      <button class="book">Book Now</button>
    </li>
    <li class="europe tour">
      <h2>Paris, France</h2>
      <span class="details">$2,299 for 7 nights</span>
      <button class="book">Book Now</button>
    </li>
    <li class="asia tour">
      <h2>Tokyo, Japan</h2>
      <span class="details">$3,799 for 7 nights</span>
      <button class="book">Book Now</button>
    </li>
  </ul>
</div>

 在js文件中,写入:

$(document).ready(function(){
    var message = $("<span>Call 1-555-jquery-air to book this tour</span>");
    $(".asia").append(message);
    $(".asia").find("button").remove();
});

 .remove()是删除标签的方法,我们也可以往html中添加标签:

$("button").on("click", function(){
  var message = $("<span>Call 1-555-jquery-air to book this tour</span>");
  $(".usa").append(message);
  $("button").remove();
});
 .append(<element>)向指定的容器标签中的最后添加内容

 

.prepend(<element>)向指定的容器标签的前面添加内容

.after(<element>) 在被选元素后插入指定的内容

.before(<element>)在被选元素前插入指定的内容

在上面的js代码中,我们通过监听“click”事件,响应之后将“<span>Call 1-555-jquery-air to book this tour</span>”赋值给message但是我们需要按照上面的格式在文本前加上符号$,这样html页面才会正确渲染jQuery添加进去的内容。接写来我们才用到.append()方法,将事先写好的message动态添加到包含"class='usa'"属性的标签中的最后。并且将<button>标签及其内容删除。

另外,我们也可以通过.appendTo(),.prependTo(),.insertBefore(),.insertAfter()的方法动态添加html内容。例如用

message.appendTo($(".usa"));
 代替原来的

 

 

$(".usa").append(message);
 效果是一样的。可能你也注意到上面的.on()方法,.on()方法是官方推荐的绑定事件的一个方法:

 

 $(selector).on(<event>,<event handler>)

但是我们注意到,按照上面的写法,所有的<button>标签被点击都会触发同样的效果,所以我们需要指定对应被点击的内容,触发相应的功能。

$(document).ready(function(){
    $("button").on("click", function(){
    var message = $("<span>Call 1-555-jquery-air to book this tour</span>");
    $(this).closest(".tour").append(message);
    $(this).remove();
  });
});

  我们不仅可以监听"click"事件,更多的监听事件可以在:http://api.jquery.com/category/events/keyboard-events/http://api.jquery.com/category/events/form-events/中查看。我们可以通过$(this)定位被点击的html内容,并且依旧可以在$(this)基础上走到其他标签的位置,在这里,我们用.closest()走到this的属性为“class='tour'”的根标签。在这里,我们可以采用更好的方式取代原来的点击监听:

$(".tour").on("click",button, function(){
});

有时候,我们需要向标签附上"data"属性:

<li class="usa tour on-sale" data-discount="299">
   <h2>New York, New York</h2>
   <span class="details">$1,899 for 7 nights</span>
   <button class="book">Book Now</button>
</li> 

 我们可以通过.data()的方式取得标签内的值:

$(. usa).data("discount");

我们还可以通过.addClass()给标签添加属性,用.removeClass()删除标签的某一属性:

$(. usa).addClass("text_center");  //在标签中添加新的class属性
$(. usa).removeClass("on-sale");  //添加删除某一class属性

在jQuery中还有很多好玩的东西,比如:有时候我们没必要真正删除某一html内容,我们可以用.slideDown(),.slideUp(),.slideToggle()来现实或者隐藏某一html内容, 用.fade()来实现淡进淡出等:

$("span").slideDown();      //显示内容
$("span").slideUp();        //隐藏内容
$("span").slideToggle();    //改变显示、隐藏形式

 

分享到:
评论

相关推荐

    初探jquery——表单应用范例

    ### 初探jQuery——表单应用范例 #### 一、引言 随着Web开发技术的不断进步,jQuery作为一种轻量级的JavaScript库,在前端开发领域占据着举足轻重的地位。它简化了许多复杂的DOM操作,并提供了丰富的插件支持,...

    jquery 源码初探,一步步实现自己的jquery(四)

    在本篇《jquery 源码初探,一步步实现自己的jquery(四)》中,我们将深入探讨jQuery库的核心概念,并尝试逐步构建一个简易版的jQuery,以帮助理解其内部机制。jQuery是一个广泛使用的JavaScript库,它简化了DOM操作...

    [jQuery] jQuery 移动开发技术初探 (英文版)

    [Packt Publishing] jQuery 移动开发技术初探 (英文版) [Packt Publishing] jQuery Mobile First Look (E-Book) ☆ 出版信息:☆ [作者信息] Giulio Bai [出版机构] Packt Publishing [出版日期] 2011年06月23...

    锋利的JQuery,菜鸟学习实战,JQuery初探最int实例材料,0基础

    "JQuery初探最int实例材料"可能包含了从基础操作到高级技巧的实例,涵盖选择器应用、事件处理、动画制作、Ajax通信等多个方面。通过这些实例,初学者能够深入理解jQuery的工作原理,并逐渐掌握其用法。 总之,...

    jQuery Mobile First Look

    ### jQuery Mobile初探:关键技术与应用实践 #### 一、前言 《jQuery Mobile First Look》是一本关于jQuery Mobile框架的入门级电子书,由Giulio Bai编写,旨在为读者提供快速移动Web开发的基础知识和技术指导。...

    JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探

    JQuery作为一款强大的JavaScript库,被广泛应用于网页的DOM操作、事件处理、动画效果、以及与服务器的数据交互等方面。本文探讨了如何使用JQuery构建一个将客户端和服务端分离的链接模型,并在这个模型中实现高效的...

    easyUI初探

    **EasyUI初探** EasyUI 是一款基于 jQuery 的前端用户界面框架,专为开发者提供一套易于使用、功能强大的组件库,使得开发具有专业外观和交互性的 Web 应用变得简单。EasyUI 提供了诸如窗口、表格、下拉菜单、按钮...

    使用IE6看老赵的博客 jQuery初探

    2. jQuery的初探:文件内容显示,作者刚开始接触jQuery,并尝试使用$.ajax方法来异步获取网页内容。这说明了jQuery库由于其易用性和强大的功能,在初学者中很受欢迎,尤其是在处理AJAX请求和DOM操作上。 3. 页面...

    初试jQuery EasyUI 使用介绍

    jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松...OK,下面就开始我们的初探之旅。jQuery EasyUI—Accordion 手风琴效果,大家应该很熟悉。 基本代码: 代码如下: &lt;htm

    移动开发者必备工具:开源jqTouch初探

    《移动开发者必备工具:开源jqTouch初探》 在当今技术日新月异的时代,移动设备的普及催生了大量针对这些平台的应用程序开发需求。尤其是苹果的iPhone、iTouch和iPad,它们引领了移动设备的新潮流。然而,苹果官方...

    加密网页数据获取初探.pdf

    加密网页数据获取初探 加密网页数据获取是一种非常复杂的技术难题,随着网络爬虫的飞速发展,网页加密技术也在不断发展,导致数据获取变得不再容易。本文主要研究了如何分析加密网页,如何抓住加密防范薄弱之处,以...

    textillate动画初探

    在使用Textillate之前,需要先确保已安装jQuery库。然后,你可以通过以下方式引入Textillate: ```html &lt;!-- 引入jQuery --&gt; &lt;script src="https://code.jquery.com/jquery.min.js"&gt;&lt;/script&gt; &lt;!-- 引入Textillate...

    jogo_da_velha:Meu primeiro Jogo utilizando JQuery

    《基于JQuery实现的井字游戏:初探交互式网页编程》 在IT行业中,网页交互性是提升用户体验的关键因素之一。"jogo_da_velha"项目,即"井字游戏",是我利用jQuery库创建的首个交互式游戏,旨在展示如何通过HTML、CSS...

    Candy-Machine-Game:使用Jquery和Bootstrap制作的猜谜游戏,可在浏览器中运行。 当前只有界面,很快就可以播放

    《Candy-Machine-Game:基于Jquery与Bootstrap构建的浏览器猜谜游戏初探》 在数字娱乐领域,游戏开发始终占据着重要地位,而HTML5的崛起为网页游戏提供了更为广阔的发展空间。本项目“Candy-Machine-Game”正是这样...

    javascript中的事件代理初探

    javascript提供了addEventListener和attachEvent两个方法来为DOM节点绑定事件,jquery作了进一步封装,提供了兼容各个浏览器的bind方法。现在来看,这种传统的事件绑定方式存在着以下不足: 1.可能需要绑定很多的...

    ApiCloud 2048 H5版源码

    在ApiCloud中开发H5版2048,首先需要创建一个项目,然后引入必要的前端库,如jQuery或其他轻量级框架,用于处理DOM操作和事件监听。接着,你需要设计一个数据结构来存储棋盘状态,通常是一个二维数组。游戏逻辑通过...

    Treasure_Island

    《jQuery Mobile与Django RESTful框架整合初探》 在当今的Web开发中,移动设备的普及使得开发者需要关注移动应用的开发。本篇文章将深入探讨如何利用jQuery Mobile和Django RESTful框架创建一个高效的移动应用程序...

Global site tag (gtag.js) - Google Analytics