jQuery技巧

来源:asp之家 时间:2009-09-27 12:28:00 

1、关于页面元素的引用

通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法。

2、jQuery对象与dom对象的转换

只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。

普通的dom对象一般可以通过$()转换成jquery对象。

如:$(document.getElementById("msg"))则为jquery对象,可以使用jquery的方法。
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。

如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。

以下几种写法都是正确的:

$("#msg").html();
$("#msg")[0].innerHTML;
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;

3、如何获取jQuery集合的某一项

对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eq或get(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而get(n)和索引返回的是dom元素对象。对于jquery对象只能使用jquery的方法,而dom对象只能使用dom的方法,如要获取第三个<div>元素的内容。有如下两种方法:

$("div").eq(2).html(); //调用jquery对象的方法
$("div").get(2).innerHTML; //调用dom的方法属性

4、同一函数实现set和get

Jquery中的很多方法都是如此,主要包括如下几个:

$("#msg").html(); //返回id为msg的元素节点的html内容。
$("#msg").html("<b>new content</b>"); 
//将“<b>new content</b>” 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content

$("#msg").text(); //返回id为msg的元素节点的文本内容。
$("#msg").text("<b>new content</b>"); 
//将“<b>new content</b>” 作为普通文本串写入id为msg的元素节点内容中,页面显示<b>new content</b>

$("#msg").height(); //返回id为msg的元素的高度
$("#msg").height("300"); //将id为msg的元素的高度设为300
$("#msg").width(); //返回id为msg的元素的宽度
$("#msg").width("300"); //将id为msg的元素的宽度设为300

$("input").val("); //返回表单输入框的value值
$("input").val("test"); //将表单输入框的value值设为test

$("#msg").click(); //触发id为msg的元素的单击事件
$("#msg").click(fn); //为id为msg的元素单击事件添加函数

同样blur,focus,select,submit事件都可以有着两种调用方法

5、集合处理功能

对于jquery返回的集合内容无需我们自己循环遍历并对每个对象分别做处理,jquery已经为我们提供的很方便的方法进行集合的处理。
包括两种形式:

$("p").each(function(i){this.style.color=['#f00','#0f0','#00f'][ i ]}) 
//为索引分别为0,1,2的p元素分别设定不同的字体颜色。

$("tr").each(function(i){this.style.backgroundColor=['#ccc','#fff'][i%2]}) 
//实现表格的隔行换色效果

$("p").click(function(){alert($(this).html())}) 
//为每个p元素增加了click事件,单击某个p元素则弹出其内容

6、扩展我们需要的功能

$.extend({
min: function(a, b){return a < b?a:b; },
max: function(a, b){return a > b?a:b; } 
}); //为jquery扩展了min,max两个方法

使用扩展的方法(通过“$.方法名”调用):

alert("a=10,b=20,max="+$.max(10,20)+",min="+$.min(10,20));

7、支持方法的连写

所谓连写,即可以对一个jquery对象连续调用各种不同的方法。
例如:

$("p").click(function(){alert($(this).html())})
.mouseover(function(){alert('mouse over event')})
.each(function(i){this.style.color=['#f00','#0f0','#00f'][ i ]});

8、操作元素的样式

主要包括以下几种方式:

$("#msg").css("background"); //返回元素的背景颜色
$("#msg").css("background","#ccc") //设定元素背景为灰色
$("#msg").height(300); $("#msg").width("200"); //设定宽高
$("#msg").css({ color: "red", background: "blue" });//以名值对的形式设定样式
$("#msg").addClass("select"); //为元素增加名称为select的class
$("#msg").removeClass("select"); //删除元素名称为select的class
$("#msg").toggleClass("select"); //如果存在(不存在)就删除(添加)名称为select的class

标签:JavaScript,jquery,技巧
0
投稿

猜你喜欢

  • MySQL分库分表后路由策略设计详情

    2024-01-19 01:24:55
  • Python迭代器和生成器定义与用法示例

    2022-02-15 19:42:13
  • MySQL获取系统性能和状态代码

    2024-01-13 10:56:18
  • python中黄金分割法实现方法

    2022-05-15 01:45:24
  • PyQt5每天必学之带有标签的复选框

    2021-04-30 05:27:06
  • Ubuntu下使用Python实现游戏制作中的切分图片功能

    2021-02-22 22:55:53
  • PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解

    2023-10-15 01:41:57
  • python标准库OS模块详解

    2022-08-21 21:47:06
  • golang切片扩容规则实现

    2024-04-27 15:31:22
  • python3用PyPDF2解析pdf文件,用正则匹配数据方式

    2021-08-29 21:24:01
  • 一文详解Golang 定时任务库 gron 设计和原理

    2023-08-06 21:34:38
  • 解决python 读取excel时 日期变成数字并加.0的问题

    2021-07-11 18:53:41
  • python向量化与for循环耗时对比分析

    2023-12-21 14:14:59
  • php的优点总结 php有哪些优点

    2023-11-14 16:03:25
  • MySQL重定位数据库目录的内容

    2009-02-26 16:03:00
  • python中使用矢量化替换循环详解

    2023-08-27 00:51:01
  • python实现查找两个字符串中相同字符并输出的方法

    2023-09-01 04:03:42
  • 详解Java使用sqlite 数据库如何生成db文件

    2024-01-17 17:07:47
  • 部署Python的框架下的web app的详细教程

    2022-06-03 08:20:57
  • Python3中的算术运算符详解

    2022-04-13 03:01:45
  • asp之家 网络编程 m.aspxhome.com