【how2j JQuery部分】课后题答案及相关笔记

练习题

<script src="jquery.min.js"></script>
 <script>
	 $(function(){
		 $('tr:odd').css({"background-color":"#f8f8f8"});
	 });
</script>
<style>
table{border-collapse:collapse;width:90%;}
tr{border-bottom-style: solid;border-bottom-width: 1px;border-bottom-color: lightgray;height:35px;}
td{width:25%;text-align:center;}
  
</style>
<table id="t">
   <tr >
       <td>id</td>	<td>名称</td>	<td>血量</td>	<td>伤害</td>
    </tr>
   <tr >
       <td>1</td>	<td>gareen</td>	<td>340</td>	<td>58</td>
    </tr>
   <tr >
       <td>2</td>	<td>teemo</td>	<td>320</td>	<td>76</td>
    </tr>
   <tr >
       <td>3</td>	<td>annie</td>	<td>380</td>	<td>38</td>
    </tr>
   <tr >
       <td>4</td>	<td>deadbrother</td>	<td>400</td>	<td>90</td>
    </tr>
</table>
id名称血量伤害
1gareen34058
2teemo32076
3annie38038
4deadbrother40090

prop与attr的区别

与prop一样attr也可以用来获取与设置元素的属性。
区别在于,对于自定义属性和选中属性的处理。
选中属性指的是 checked,selected 这2种属性

  1. 对于自定义属性 attr能够获取,prop不能获取

  2. 对于选中属性
    attr 只能获取初始值, 无论是否变化
    prop 能够访问变化后的值,并且以true|false的布尔型返回。
    所以在访问表单对象属性的时候,应该采用prop而非attr

jQuery prop() 方法

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<script src="https://cdn.staticfile.net/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
	$("button").click(function(){
		$("#p1").html("attr('checked'): " + $("input").attr('checked')
					  + "<br>prop('checked'): " + $("input").prop('checked'));
	});
});
</script>
</head>
<body>

<p><b>注意:</b>确认或取消选中该复选框,然后单击按钮刷新内容。</p>
<button>查看attr() 和 prop() 的值</button>
<br><br>
<input id="check1" type="checkbox" checked="checked">
<label for="check1">Check me</label>
<p id="p1"></p>

</body>
</html>

在这里插入图片描述

3.事件

3.1 键盘事件

keydown 表示按下键盘
keypress 表示按住键盘
keyup 表示键盘弹起
这三者的区别分别表现在发生的 先后顺序,获取到的键盘按钮值,已经对输入框的文本取值这三方面
先后顺序: 按照 keydown keypress keyup 顺序发生
键盘按钮值:
通过event对象的which属性获取键盘的值
keydown和keyup 能获取所有按键,不能识别大小写
keypress 不能获取功能键,如F1 SHIFT等,能够识别大小写
文本取值:
keydown和keypress:不能获取最后一个字符
keyup: 获取所有字符
键盘事件代码说明

<script src="jquery.min.js"></script>

<script>
  var order = 0;  //计数器,判断语句调用的前后次序
  var clearTimer=null; //定时器
  
  $(function(){
    /*
        selector:触发事件的类型
        e:显示的信息
        $(this):触发事件的元素(#i)
        .val()该元素的值
    */
    $("#i").keydown(function(e){
       var selector = "keydown";
    
       show(selector,e,$(this).val());
    });
    
    $("#i").keypress(function(e){
       var selector = "keypress";
       show(selector,e,$(this).val());
    });
    
    $("#i").keyup(function(e){
       var selector = "keyup";
       show(selector,e,$(this).val());
    });
      
  });
    
  /*inputvalue:输入框的当前值,通常通过 $(this).val() 获取。*/
  function show(selector,e,inputvalue){
       
       clearTimeout(clearTimer);

       action(selector);
       key(selector,e);
       value(selector,inputvalue);

       clearTimer= setTimeout(clear,4000);
  }
    
  //行为 
  function action(selector){
      $("#"+selector+"Action").css("background-color","green");
      $("#"+selector+"Action").html("顺序: " + (++order ) );
  }
    
  //值
  function value(selector,value){
      $("#"+selector+"Value").html(value);
  }
    
  //按键
  function key(selector,e){
      $("#"+selector+"Key").html(e.which);
  }
   
  //清屏
  function clear(){
    order = 0; 6
    $("tr#action div").css("background-color","red");
    $("tr div").html("");
  }
    
  </script>
  <style>
  tr#action div{
    border: 1px solid black;
    height:50px;
    background-color:red;
  }
   
  tr#value div,tr#key div{
    
    height:50px;
    background-color:#d1d1d1;
  }
    
  td{
   width:25%;
  }
  </style>
  输入框:<input id="i">
  <table width="100%">
  <tr>
    <td></td>
    <td>keydown</td>
    <td>keypress</td>
    <td>keyup</td>
  </tr>
  <tr id="action">
    <td>行为</td>
    <td><div id="keydownAction"></div></td>
    <td><div id="keypressAction"></div></td>
    <td><div id="keyupAction"></div></td>
  </tr>
    
  <tr id="key">
    <td>按键</td>
    <td><div id="keydownKey"></div></td>
    <td><div id="keypressKey"></div></td>
    <td><div id="keyupKey"></div></td>
  </tr>
    
  <tr id="value">
    <td>取值</td>
    <td><div id="keydownValue"></div></td>
    <td><div id="keypressValue"></div></td>
    <td><div id="keyupValue"></div></td>
  </tr>
    
  </table>


3.2 鼠标事件

mousedown 表示鼠标按下
mouseup表示鼠标弹起

mousemove表示鼠标进入
mouseenter表示鼠标进入
mouseover表示鼠标进入

mouseleave表示鼠标离开
mouseout表示鼠标离开

进入事件有3个 mousemove mouseenter mouseover
mousemove :当鼠标进入元素,每移动一下都会被调用
mouseenter :当鼠标进入元素,调用一下,在其中移动,不调用
mouseover:当鼠标进入元素,调用一下,在其中移动,不调用

mouseenter 和 mouseover的区别
mouseenter: 当鼠标经过其子元素不会被调用
mouseover:当鼠标经过其子元素会被调用

mouseleave 和 mouseout的区别
mouseleave: 当鼠标经过其子元素不会被调用
mouseout:当鼠标经过其子元素会被调用

<script src="jquery.min.js"></script>



<script>
$(function(){

    $("#downup").mousedown(function(){
       $(this).html("鼠标按下");
    });
    $("#downup").mouseup(function(){
       $(this).html("鼠标弹起");
    });
    
    var moveNumber  =0;
    var enterNumber  =0;
    var leaveNumber  =0;
    var overNumber  =0;
    var outNumber  =0;
     
    var enterNumber1  =0;
    var overNumber1  =0;
     
    var leaveNumber1  =0;
    var outNumber1  =0;
     
    $("#move").mousemove(function(){
      $("#move span.number" ).html(++moveNumber);
    });
    $("#enter").mouseenter(function(){
      $("#enter span.number" ).html(++enterNumber);
    });
    $("#leave").mouseleave(function(){
      $("#leave span.number" ).html(++leaveNumber);
    });
    $("#over").mouseover(function(){
      $("#over span.number" ).html(++overNumber);
    });
    $("#out").mouseout(function(){
      $("#out span.number" ).html(++outNumber);
    });
     
    $("#enter1").mouseenter(function(){
      $("#enter1 span.number" ).html(++enterNumber1);
    });
    $("#over1").mouseover(function(){
      $("#over1 span.number" ).html(++overNumber1);
    });
     
    $("#leave1").mouseleave(function(){
      $("#leave1 span.number" ).html(++leaveNumber1);
    });
     
    $("#out1").mouseout(function(){
      $("#out1 span.number" ).html(++outNumber1);
    });
     
});
     
</script> 
     

 
<style>
    div{
      background-color:pink;
      margin:20px;
      padding:10px;
    }
     
    .subDiv{
      background-color:green;
      margin:10px;
    }
     
    .parentDiv{
      background-color:pink;
      height:80px;
    }
     
    table{
     width:100%;
     border-collapse:collapse;
      table-layout:fixed;
    }
    td{
      border: 1.5px solid #d1d1d1;
      vertical-align:top;
      padding:20 0;
    }
     
</style>

<table >
    
    <tr>
      <td width="100px">事件</td>
      <td>效果演示</td>
    </tr>

    <tr>
      <td>mousedown <br />
      mouseup<br /></td>
      <td>
        <button id="downup" style="margin-left:20px">鼠标按下弹起测试</button>    </td>
    </tr>
    
    <tr>
      <td>
        mousemove<br />
        mouseenter<br />
        mouseover<br />
        mouseleave<br />
        mouseout
       </td>
      
       <td>

          <div id="move">mousemove 当鼠标进入元素,每移动一下都会被调用 次数<span class="number">0</span></div>
          <div id="enter">mouseenter 当鼠标进入元素,调用一下,在其中移动,不调用 次数<span class="number">0</span></div>
          <div id="over">mouseover 当鼠标进入元素,调用一下,在其中移动,不调用 次数<span class="number">0</span></div>
          <div id="leave">mouseleave 当鼠标离开元素,调用一下 次数<span class="number">0</span></div>
          <div id="out">mouseout 当鼠标离开元素,调用一下 <span class="number">0</span></div>
    </tr>

    <tr>
      <td>mouseenter
      
       <br />
      
      mouseover
      
      /td>
      
      <td>
       
      <div id="enter1" class="parentDiv">
      mouseenter 经过其子元素不会被调用 次数 <span class="number">0</span>
       
      <div class="subDiv">div中的子元素      </div>
      </div>
       
          <div id="over1" class="parentDiv">
      mouseover  经过其子元素会被调用 次数<span class="number">0</span>
       
         <div class="subDiv">div中的子元素      </div>
      </div>    </td>
    </tr>
    <tr>
      <td>mouseleave<br />
        mouseout    </td>
      <td>
      <div id="leave1" class="parentDiv">
      mouseleave 经过其子元素不会被调用 次数<span class="number">0</span>
       
         <div class="subDiv">div中的子元素      </div>
      </div>
       
      <div id="out1" class="parentDiv">
   
      mouseout 经过其子元素会被调用 次数<span class="number">0</span>
       
         <div class="subDiv">div中的子元素      </div>
      </div>    </td>
    </tr>
  </table>

3.3 事件绑定

所有的事件处理,都可以通过on() 绑定事件来处理

$("selector").on("event",function);

$(“selector”) : 通过dollar符号来选择元素
.on():用于为选定的元素绑定函数
event:表示要绑定的事件类型
function:当事件发生时,函数被调用

3.4 触发事件

文档加载好之后,就触发dblclick双击事件,而不是通过去手动双击。

$("selector").trigger("event");

4. AJAX

  • $.ajax({
    url: page,
    data:{“name”:value},
    success: function(result){
    $(“#checkResult”).html(result);
    }
    });

  • $.get(
    page,
    {“name”:value},
    function(result){
    $(“#checkResult”).html(result);
    }
    )

  • $.post(
    page,
    {“name”:value},
    function(result){
    $(“#checkResult”).html(result);
    }
    );

  • $(“#checkResult”).load(page);

  • var data = $(“#form”).serialize(); //serialize():格式化字符串的方法

5. 方法

$.trim() 去除首尾空白

6.JSON字符串和JSON对象

使用 $.parseJSON() 将JSON格式的字符串,转换为JSON对象
Json对象和Json字符串的区别

  • 16
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《C语言程序设计》是一本经典的C语言教程教材,适用于初学者和进阶者。这本书从C语言基础开始介绍,深入浅出,内容涵盖C语言的各个方面,包括变量、算术运算、循环、函数、数组、指针、结构体、文件操作等。 每章包括例子和练习,可以帮助读者加深对C语言知识的理解和运用。此外,本书还提供了一些优秀的C语言编程实例,例如排队服务系统、图书管理系统等,可以帮助读者在实践中巩固和应用所学知识。 除了基础内容之外,本书还介绍了一些高级C语言编程技术,例如数据结构和算法、网络编程等。这些内容可以让读者更深入地理解C语言,并且提供了更多开发应用的思路和方法。 总的来说,《C语言程序设计》是一本很好的学习C语言的教材,深入浅出、内容丰富,推荐给初学者和进阶者。同时,本书也是一本经典的计算机科学教材,可以让读者了解计算机科学的基础知识和编程方法。 ### 回答2: 《C语言程序设计》(C How to Program)是一本很好的C语言学习教材,在学习过程中需要注意以下几点: 1. 学习前必须具备一些基本的编程知识,如变量、数据类型、流程控制等,否则可能会导致难度过大,无从下手。 2. 尽可能实践,书本知识只是理论,实践才能更好的理解用途和细节。 3. 深入理解函数的作用,函数是C语言的一个重要特性,要充分利用才能让程序更简洁、高效。 4. 学习调试技巧,调试是程序开发不可避免的过程,掌握好调试技巧可以快速定位和解决问。 5. 学习代码规范,编写规范的代码可以提高代码的可读性和可维护性。 总的来说,学习C语言需要耐心和实践,如果你坚持下去,在不断实践和探索中你将会掌握C语言的精髓和技巧,取得不错的进展。 ### 回答3: 《C程序设计》是计算机科学专业中必修的一门课程,也是学习编程语言的重要基础。书中详细介绍了C语言的各种语法、命令以及编程技巧,涵盖了基本数据类型、条件语句、循环语句、数组、指针、函数等内容。 书中的案例包含了计算器、游戏和实用工具等不同类型的程序,这些案例可以帮助读者更好地理解C语言的各种概念和用法。读者可以自己实践案例,充分掌握C语言的编程技巧。 此外,本书还包含了许多习,这些习既能帮助读者巩固所学知识,又能提高读者的编程能力。在学习过程中,读者需要反复编写代码、运行调试,不断体验编程的乐趣和挑战。 总之,《C程序设计》是一本非常实用的编程教材,对于计算机科学专业的学生和编程爱好者来说,都是一本非常值得阅读和学习的经典之作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值