jQuery 的功能
该博客基于阮一峰前辈在2011年所做的分享(原链接: )
jQuery的核心就是:可以选择某个网页元素,然后对其进行某种操作
我们可知jQuery是一个构造函数,那么我们就可以通过选择表达式,把选中的元素,放进jQuery构造函数($)当中,从而得到选中的元素。
而选择表达式可以是CSS选择器:
也可以是jQuery特有的表达式:
在jQuery当中最终选中网页元素以后,可以对它进行一系列操作,并且所有操作可以连接在一起,以链条的形式写出来,比如:
拆解开来,就是:
这是jQuery最令人称道、最方便的特点。它的原理在于每一步的jQuery操作所返回的都是一个jQuery对象,所以不同操作可以连在一起。
jQuery还提供了.end()方法,使得结果集可以后退一步:
创建新元素的方法非常简单,只要把新元素直接传入jQuery的构造函数就行了:
操作元素在网页中的位置移动有两种方法:
(1)直接移动该元素;
(2)移动其他元素,使得目标元素达到我们想要的位置。
(1)方法是使用.insertAfter(),把div元素移动p元素后面:
(2)方法是使用.after(),把p元素加到div元素前面:
表面上看,这两种方法的效果是一样的,唯一的不同似乎只是操作视角的不同。但是实际上,它们有一个重大差别,那就是返回的元素不一样。第一种方法返回div元素,第二种方法返回p元素。你可以根据需要,选择到底使用哪一种方法。
使用这种模式的操作方法,一共有四对:
text(?) //读写文本内容
用于返回内容时,则返回所有匹配元素的文本内容(会删除 HTML 标记)。
用于设置内容时,则重写所有匹配元素的内容。
html(?) //读写HTML内容
设置或返回被选元素的 innerHTML(文本 + HTML 标记)
attr('title',?) // 读写属性
设置或返回被选元素的属性值。
css({color:'red'}) //读写style
设置或返回被选元素的一个或多个样式属性。
addClass('blue')
向被选元素添加一个或多个类。
该方法不会移除已存在的 class 属性,仅仅添加一个或多个 class 属性。
on('click',fn)
支持动态绑定元素,即页面上元素有添加或变化后仍可绑定,前提是selector须是目标绑定元素的父元素
off('click',fn)
用于移除通过 on()方法添加的事件处理程序
jQuery的使用方法
使用步骤如下:
1.jQuery给放到一个文件夹里面,方便我们待会引用这个jQuery,这里我就放到我项目的js文件夹里面。
2.然后我们来开始编辑HTML界面代码。
3.使用script标签把jQuery引入到我们的HTML界面。src引号里面的就是我们的jQuery路径名称。
4.接着再书写一个script标签对,里面写上jQuery入口函数,这样,当我们的HTML加载完成之后就会执行我们的jQuery代码
jQuery常用属性和方法有哪些
属性:
获得标签:$("#id")
获得标签内的代码:.html()
获得标签内的文本:.text()
修改标签内的代码:.html("内容");
修改标签内的文本:.html("内容");
获得标签属性:.attr("属性");
修改标签属性:attr("属性","属性值");
添加样式:addClass("样式名");
动态切换样式:toggleClass("样式名");
获取样式:css
添加元素:append("元素");
移去元素:.remove();
清空节点: .empty();
获取第二个li节点: var $li=$("ul li:eq(1)");
获取第二个li节点的文本内容: var li_txt=$
方法:
一:插入节点:
append() 向每个匹配的元素文本内部的后面追加内容
eg:p我想说:/p
代码:
$("p").append("b你好/b");
结果为:p我想说:b你好/b/p
appendto() 将所有的匹配的元素追加到指定的元素中。实际上,使用该方法是颠倒了常规的$(A).append(B)的操作,即不是B追加到A中,而是将A追加到B文本的后面中。
eg:p我想说:/p
代码:
$("b你好/b").appendTo("p");
结果为:p我想说:b你好/b/p
prepend() 向每个匹配的元素文本的内部前置内容。
eg:p我想说:/p
代码:
$("p").prepend("b你好/b");
结果为:pb你好/b我想说:/p
prependto() 将所有的匹配的元素前置到指定的元素中。实际上,使用该方法是颠倒了常规的$(A).append(B)的操作,即不是B前置到A中,而是将A前置到B中
eg:p我想说:/p
代码:
$("b你好/b").prependto("p");
结果为:pb你好/b我想说:/p
after() 向每个匹配的元素之后插入内容 。
eg:p我想说:/p
代码:
$("p").after("b你好/b");
结果为:p我想说:b你好/b/p
insertAfter 将所有的匹配的元素插入到指定的元素后面。实际上,使用该方法是颠倒了常规的$(A).append(B)的操作,即不是B插入到A后面,而是将A插入到B后面。
eg:p我想说:/p
代码:
$("b你好/b").after("p");
结果为:p我想说:b你好/b/p
before() 在每个匹配的元素之前插入内容
eg:p我想说:/p
代码:
$("b你好/b").after("p");
结果为:p我想说:b你好/b/p
insertBefore():将A标签插入到B标签的前面
二:删除:
①remove 该节点所包含的所有的后代节点将同时被删除 也可以通过参数来选择
②empty 清空节点,它能清空元素中的所有后代节点
三:替换节点:
①replaceWith() 作用是将所有匹配的元素都替换成指定的HTML或DOM元素
②replaceAll()
四:包裹节点:
①warp() 作用是是将所有元素进行单独包裹
②warpAll() 作用元素的是所有匹配的元素用一个元素来包裹
③warpinner() 作用是将每一个的子内容(包括文本节点)用其他结构化的标记包裹起来
五:设置和获取HTML、文本值
1、html():
2、text
3、val
六:遍历节点
1、children(): 取得匹配元素的子元素
2、next():取得匹配元素后面紧邻的同辈元素
3、prev():取得匹配元素前面紧邻的同辈元素
4、siblings():取得匹配元素前后所有的同辈元素
5、closest():取得最近的匹配元素
七:css-dom
css 获取样式的属性
offset()
position
scroll
scrollLeft
样式操作:
1:获取样式和设置样式 attr
eg:p class="myClass" title="选择你最喜欢的水果"你最喜欢的水果是?/p
获取样式: var p_class=$("p").attr("class");
设置样式:$("p").attr("class","high");
2:追加样式 addClass
style
.high{
font-weight:bold 粗体字
color:red 字体颜色
}
.another{
font-weight:italic 斜体字
color:blue 字体颜色
}
/style
追加样式:
$("input:eq(2)").click(function(){$("p".addClass("another"))})
☆在css中有以下规定:
①如果给一个元素添加了多个class值,那么就相当于合并了他们的样式
②如果不同的class设置了同一样式,则后者覆盖前者
addClass attr
对同一个网页元素进行操作 ptest/p ptest/p
第一次使用 $"p".addClass("high"); $"p".attr("class","high");
第一次结果 p class="high"test/p p class="high"test/p
再次使用 $"p".addClass("another"); $"p".attr("class","another");
最终结果 p class="high another"test/p p class="another"test/p
3:移除样式 removeClass
p class="high another"test/p
移除一个:$"p".removeClass("high");
移除二个:$"p".removeClass("high").removeClass("another");==$"p".removeClass("high another")
移除全部:$"p".removeClass();
4:切换样式 toggle
5:判断是否含有摸个样式 hasClass
可以用来判断元素中是否含有某个class,如果有返回true否则返回false
jquery 常用使用方法
新窗口打开链接 XHTML Strict 版本不支持 target="_blank" 属性 而使用 JQuery 能很好地解决这个问题 实现新窗口打开网页
复制代码 代码如下:
$( a[@rel$= external ] ) click(function(){ this target = "_blank"; }); /* Usage: a href=" target=_blank css教程("padding" " em em" ); //B Target anything above IE if ($ browser msie $ browser version ) $("#menu li a") css("padding" " em em" ); //C Target IE and below if ($ browser msie $ browser version = ) $("#menu li a") css("padding" " em em" ); //D Target Firefox and above if ($ browser mozilla $ browser version = " " ) $("#menu li a") css("padding" " em em" );
字符串替换 用 JQuery 能对文本内容中的特定字符串进行替换操作
复制代码 代码如下:
var el = $( #id ); el (el () replace(/word/ig ""));
列高度相等 用 CSS 实现两列高度相等并不容易 JQuery 能帮你解决
复制代码 代码如下:
function equalHeight(group) { tallest = ; group each(function() { thisHeight = $(this) height(); if(thisHeight tallest) { tallest = thisHeight; } }); group height(tallest); } /* Usage: $(document) ready(function() { equalHeight($(" recent article")); equalHeight($(" footer col")); }); */
字体大小重设 字体大小重设是一个非常常用的功能
$(" resetFont") click(function(){ $( ) css( font size originalFontSize); }); // Increase Font Size $(" increaseFont") click(function(){ var currentFontSize = $( ) css( font size ); var currentFontSizeNum = parseFloat(currentFontSize ); var newFontSize = currentFontSizeNum* ; $( ) css( font size newFontSize); return false; }); // Decrease Font Size $(" decreaseFont") click(function(){ var currentFontSize = $( ) css( font size ); var currentFontSizeNum = parseFloat(currentFontSize ); var newFontSize = currentFontSizeNum* ; $( ) css( font size newFontSize); return false; }); });
禁用右键菜单 有许多 JavaScript 代码段可禁用右键菜单 但 JQuery 使操作变得更容易
复制代码 代码如下:
jQuery中常用的方法有哪些?这些方法都是用来做什么的?jQuery的这些方法是放到什么地方的?
按以下几类分解
一、选择器(定位元素方法)方法
$("各种类型选择器")
二、筛选方法
$("xxx").find()等
三、对DOM元素的增、删、改方法
如append/remove/html/clone等
四、对DOM元素属性的增、删、改方法
如attr/css/val等方法
五、对集合的处理方法
如json/each等方法
六、对事件的绑定方法
如click/bind/live/toggle等方法
七、其它常用方法
如ajax等