From:https://www.cnblogs.com/zengjie123/p/4893546.html
jQuery 参考手册 - 选择器:https://www.w3school.com.cn/jquery/jquery_ref_selectors.asp
选择器:https://www.runoob.com/jquery/jquery-ref-selectors.html
$ 是 jquery 类的一个别名,$() 构造一个 jquery 对象,jQuery 的核心功能都是通过这个函数实现的。 jQuery 中的一切都基于这个函数,或者说都是在以某种方式使用这个函数。
根据这个表达式来查找所有匹配的元素。
$("div>p"); 查找所有p元素,且这些p元素都是div的子元素.
$("input:radio", document.forms[0]); 查找文档第一个表单中,所有的单选按钮。
$("div",xml.responseXML); 在一个由ajax返回的xml文档中,查找所有的div元素。
注意:jQuery() 的第二个参数是 DOM 节点内容。如果没有指定那么 context 指向当前的文档 (document) 。
根据提供的 html 字符串,创建 jquery 对象包装的dom元素。
$("<div><p>Hello</p></div>").appendTo("body");
$("<input type='text'>"); 创建一个 <input> 元素必须同时设定 type 属性
将一个或多个dom元素转换为 jquery 对象。
$(document.body).css( "background", "black" ); 设置页面背景色
$(document).ready(function(){})==$(function(){});在页面加载完成后自动执行的代码。
返回的是 jquery 对象,只能使用 jquery 方法,get 返回的是 dom 元素对象,只能使用 dom 方法.
扩展 jQuery 元素集来提供新的方法,针对某一个dom元素。
jQuery.fn.extend({
check: function() { return this.each(function() { this.checked = true; });},
uncheck: function() { return this.each(function() { this.checked = false; });}
});
调用:
$("input[type=checkbox]").check();
$("input[type=radio]").uncheck();
用来在 jQuery 命名空间上增加新函数,针对所有dom元素。
$.extend({
min:function(a,b){return a<b?a:b;},
max:function(a,b){return a>b?a;b;}
});
调用:$.max(10,20);
基本 选择器:
$("#id") //ID选择器, 根据给定的ID匹配一个元素
$("div") //元素选择器, 选择所有div
$(".classname") //类选择器, 根据给定的类匹配元素。
$("*") //匹配所有元素。
$(".classname,.classname1,#id1") //组合选择器
层次 选择器:
$("ancestor descendant"):在给定的祖先元素下匹配所有的后代元素
$("parent > child"):在给定的父元素下匹配所有的子元素
$("prev + next"):匹配所有紧接在 prev 元素后的 next 元素
$("prev ~ siblings"):匹配 prev 元素之后的所有 siblings(同级) 元素$("#id>.classname ") // 子元素选择器
$("#id .classname ") // 后代元素选择器
$("#id + .classname ") // 紧邻下一个元素选择器
$("#id ~ .classname ") // 兄弟元素选择器
过滤 选择器(重点):
$("li:first") // 第一个li
$("li:last") // 最后一个li
$("li:even") // 挑选下标为偶数的li
$("li:odd") // 挑选下标为奇数的li
$("li:eq(4)") // 下标等于 4 的li(第五个 li 元素)
$("li:gt(2)") // 下标大于 2 的li
$("li:lt(2)") // 下标小于 2 的li
$("li:not(#runoob)") // 挑选除 id="runoob" 以外的所有li
内容 过滤 选择器:
$("div:contains('Runob')") // 包含 Runob文本的元素
$("td:empty") // 不包含子元素或者文本的空元素
$("div:has(p)") // 匹配所有包含 p 元素的 div 元素
$("td:parent") //含有子元素或者文本的元素
可见性 过滤 选择器:
$("tr:visible") 查找所有可见的 tr 元素
$("tr:hidden") 匹配所有的不可见元素,input 元素的 type 属性为 "hidden" 的话也会被匹配到
属性 过滤 选择器:
$("div[id]") 查找所有含有 id 属性的 div 元素
$("input[name='newsletter']") 查找所有 name 属性是 newsletter 的 input 元素
$("input[name!='newsletter']") 查找所有 name 属性不是 newsletter 的 input 元素
$("input[name^='news']") 查找所有 name 以 'news' 开始的 input 元素
$("input[name$='letter']") 查找所有 name 以 'letter' 结尾的 input 元素
$("input[name*='man']") 查找所有 name 包含 'man' 的 input 元素
$("input[id][name$='man']") 找到所有含有 id 属性,并且它的 name 属性是以 man 结尾的$("div[id]") // 所有含有 id 属性的 div 元素
$("div[id='123']") // id属性值为123的div 元素
$("div[id!='123']") // id属性值不等于123的div 元素
$("div[id^='qq']") // id属性值以qq开头的div 元素
$("div[id$='zz']") // id属性值以zz结尾的div 元素
$("div[id*='bb']") // id属性值包含bb的div 元素
$("input[id][name$='man']") //多属性选过滤,同时满足两个属性的条件的元素
状态 过滤 选择器:
$("input:enabled") // 匹配可用的 input
$("input:disabled") // 匹配不可用的 input
$("input:checked") // 匹配选中的 input
$("option:selected") // 匹配选中的 option
子元素:
匹配其父元素下的第N个子或奇偶元素
:nth-child(even) 偶数元素
:nth-child(odd) 奇数元素
:nth-child(3n)
:nth-child(2)
:nth-child(3n+1)
:nth-child(3n+2)$("ul li:first-child") 在每个 ul 中查找第一个 li
$("ul li:last-child") 在每个 ul 中查找最后一个 li
$("ul li:only-child") 在 ul 中查找是唯一子元素的 li
表单 选择器:
$(":input") 查找所有的input元素
$("text") 匹配所有的单行文本框, 等价于 $("[type=text]")推荐使用 $("input:text") 效率更高,下同
$(":password") 匹配所有密码框
$("radio") 匹配所有单选按钮
$("checkbox") 匹配所有复选框
$("submit") 匹配所有提交按钮
$("image") 匹配所有图像域
$("button") 匹配所有按钮
$("file") 匹配所有文件域
$("hidden") 匹配所有不可见元素,或者type为hidden的元素
表单 对象 属性
$("input:checked") 匹配所有选中的被选中元素(复选框、单选框等,不包括select中的option)
$("input:enabled") 匹配所有可用元素
$("input:disabled") 匹配所有不可用元素
$("select option:selected") 匹配所有选中的option元素
jQuery 常用的元素查找方法总结
jQuery 快速查询大全
操作属性:
$("img").attr("src"); 返回文档中第一个图像的src属性值。
$("img").attr("src","test.jpg"); 为所有匹配的元素设置一个属性值
$("img").attr("title", function() { return this.src }); 为所有匹配的元素设置一个计算的属性值
$("img").removeAttr("src"); 从每一个匹配的元素中删除一个属性
$("img").attr({ src: "test.jpg", alt: "Test Image" }); 将一个“名/值”形式的对象设置为所有匹配元素的属性。
操作 CSS
$("p").addClass("selected"); 为每个匹配的元素添加指定的类名
$("p").removeClass("selected"); 从所有匹配的元素中删除全部或者指定的类。一个或多个要删除的CSS类名,请用空格分开
$("p").removeClass(); 删除匹配元素的所有类
$("p").toggleClass("selected"); 如果存在(不存在)就删除(添加)一个类var count = 0;
$("p").click(function(){
$(this).toggleClass("highlight", count++ % 3 == 0);
}); //每点击三下加上一次 'selected' 类
HTML代码:
$("div").html(); 取得第一个匹配元素的html内容
$("div").html("<p>Hello Again</p>"); 设置每一个匹配元素的html内容
文本:
$("p").text(); 取得所有匹配元素的内容
$("p").text("<b>Some</b> new text."); 设置所有匹配元素的文本内容
值:
$("#single").val() 获得第一个匹配元素的当前值。
$("input").val("hello world!"); 设置每一个匹配元素的值
1、$("p").eq(1) 获取第N个元素,这个元素的位置是从0算起
2、 if ( $(this).hasClass("protected") ) 检查当前的元素是否含有某个特定的类,如果有,则返回true。
3、$("p").filter(".selected") 筛选出与指定表达式匹配的元素集合
4、is(expr) 用一个表达式来检查当前选择的元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true。
5、$("p").not( $("#selected")[0] ) 删除与指定表达式匹配的元素
1、$("div").children();取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。
2、$("p").find("span");搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法。
3、$("p").next();取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合
4、$("p").prev();取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合。
5、$("div").parent;取得一个包含着所有匹配元素的唯一父元素的元素集合。
6、$("span").parents;找到每个span元素的所有祖先元素
7、$("div").siblings();取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合
内部插入:
1、$("p").append("<b>Hello</b>"); 向每个匹配的元素内部尾部追加内容
2、$("p").prepend("<b>Hello</b>"); 向每个匹配的元素内部前部追加内容
2、$("p").appendTo("#foo"); 把所有段落追加到ID值为foo的元素中。
外部插入:
1、$("p").after("<b>Hello</b>"); 在每个匹配的元素之后插入内容
2、$("p").before("<b>Hello</b>"); 在每个匹配的元素之前插入内容
包裹
1、$("p").wrap("<div class='wrap'></div>"); 把所有匹配的元素用其他元素的结构化标记包裹起来。
替换:
1、$("p").replaceWith("<b>Paragraph. </b>"); 将所有匹配的元素替换成指定的HTML或DOM元素。
删除:
1、$("p").empty(); 删除匹配的元素集合中所有的子节点。
2、$("p").remove(); 从DOM中删除所有匹配的元素
1、$("p").css("color"); 取得第一个段落的color样式属性的值
2、$("p").css({ color: "#ff0011", background: "blue" }); 把一个“名/值对”对象设置为所有匹配元素的样式属性。
3、$("p").css("color","red"); 在所有匹配的元素中,设置一个样式属性的值
1、var offset = p.offset();获取匹配元素在当前视口的相对偏移,返回的对象包含两个整形属性:top 和 left。此方法只对可见元素有效。
2、var position = p.position();获取匹配元素相对父元素的偏移
1、$("p").height(); 取得第一个匹配元素当前计算的高度值(px)。
2、$("p").height(20); 为每个匹配的元素设置CSS高度(hidth)属性的值
3、$("p").width(); 取得第一个匹配元素当前计算的宽度值(px)。$(window).width(); 获取当前窗口的宽
4、$("p").width(20); 为每个匹配的元素设置CSS宽度(width)属性的值
1、$("p").show() 显示隐藏的匹配元素
2、$("p").hide() 隐藏显示的元素
3、$("p").show("slow"); 以优雅的动画显示所有匹配的元素,并在显示完成后可选地触发一个回调函数。
speed(String,Number) : 三种预定速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如:1000)
callback (Function) : (Optional) 在动画完成时执行的函数,每个元素执行一次。
示例:用迅速的动画将隐藏的段落显示出来,历时200毫秒。并在之后执行反馈!
4、$("p").hide("slow"); 以优雅的动画隐藏所有匹配的元素,并在显示完成后可选地触发一个回调函数。
5、$("p").toggle() 切换元素的可见状态
6、$("p").toggle("slow"); 以优雅的动画切换所有匹配的元素,并在显示完成后可选地触发一个回调函数
1、$("p").fadeIn("slow"); 通过不透明度的变化来实现所有匹配元素的淡入效果,并在动画完成后可选地触发一个回调函数
2、$("p").fadeOut("slow"); 通过不透明度的变化来实现所有匹配元素的淡出效果,并在动画完成后可选地触发一个回调函数。
3、$("p").fadeTo("slow", 0.66);$("p").fadeTo("slow", 0.66); 把所有匹配元素的不透明度以渐进方式调整到指定的不透明度,并在动画完成后可选地触发一个回调函数
自定义:
1、$("#block").animate({
width: "90%",
height: "100%",
fontSize: "20em",
borderWidth: 10
}, 1000 ); 用于创建自定义动画的函数。
1、$("p").bind("click", function(){ alert( $(this).text() );}); 为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数
2、$("p").one("click",function(){alert(${this}.text());}) 当所有段落被第一次点击的时候,显示所有其文本
3、trigger(type,[data])在每一个匹配的元素上触发某类事件
$("p").live("click", function(){$(this).after("<p>Another paragraph!</p>");});
给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件)。
也能绑定自定义事件。与bind()不同的是,live()一次只能绑定一个事件
一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法
$("td").hover(
function () {
$(this).addClass("hover");
},
function () {
$(this).removeClass("hover");
}
); 鼠标悬停的表格加上特定的类
每次点击后依次调用函数。
$("td").toggle(
function () {
$(this).addClass("selected");
},
function () {
$(this).removeClass("selected");
}
);
$("p").blur(); 触发每一个匹配元素的blur事件
$("p").blur( function () { alert("Hello World!"); } ); 在每一个匹配元素的blur事件中绑定一个处理函数
change();change事件会在元素失去焦点的时候触发,也会当其值在获得焦点后改变时触
change(fn);在每一个匹配元素的change事件中绑定一个处理函数。
$("p").click(); 触发每一个匹配元素的click事件
$("p").click(function(){});在每一个匹配元素的click事件中绑定一个处理函数
dblclick();dblclick事件会在元素的同一点双击时触发。
$("p").dblclick( function () { alert("Hello World!"); }); 在每一个匹配元素的dblclick事件中绑定一个处理函数。
$(document).ready(function(){ $("#login").focus();}); 触发每一个匹配元素的focus事件。
$("input[type=text]").focus(function(){this.blur();}); 在每一个匹配元素的focus事件中绑定一个处理函数。
keydown();keydown事件会在键盘按下时触发。
keydown(fn);在每一个匹配元素的keydown事件中绑定一个处理函数。
keypress();触发每一个匹配元素的keypress事件
keypress(fn);在每一个匹配元素的keypress事件中绑定一个处理函数。
keyup();触发每一个匹配元素的keyup事件
keyup(fn);在每一个匹配元素的keyup事件中绑定一个处理函数。
mousedown();
mouseup();
mousemove();
mouseover();
mouseout();
$("form:first").submit();提交本页的第一个表单。
$("form").submit(function(){return false;});阻止页面提交。
$.ajax(prop); prop是一个hash表,它可以传递的key/value有以下几种:
(String)type:数据传递方式(get或post)。
((String)url:数据请求页面的url
((String)data:传递数据的参数字符串,只适合post方式
((String)dataType:期待数据返回的数据格式(例如 "xml", "html", "script",或 "json")
((Boolean)ifModified: 当最后一次请求的相应有变化是才成功返回,默认值是false
((Number)timeout:设置时间延迟请求的时间。可以参考$.ajaxTimeout
((Boolean)global:是否为当前请求触发ajax全局事件,默认为true
((Function)error:当请求失败时触发的函数。
((Function)success:当请求成功时触发函数
((Function)complete:当请求完成后出发函数
用 get 方式向远程页面传递参数,请求完成后处理函数,除了url外,其它参数任意选择!
$.get("ajax.asp",
{name:"young", age:"25"},
function(data){ alert("Data Loaded: " + data); }
)
用 get 方式向远程 json 对象传递参数,请求完成后处理函数 callback
用 post 方式向远程页面传递参数,请求完成后处理函数 callback
1、$.each(obj,callback); 通用例遍方法,可用于例遍对象和数组。
回调函数拥有两个参数:
第一个为对象的成员或数组的索引,
第二个为对应变量或内容。
$.each( [0,1,2], function(i, n){alert( "Item #" + i + ": " + n );});
2、jQuery.grep(array,callback,[invert]);使用过滤函数过滤数组元素,此函数至少传递两个参数:待过滤数组和过滤函数
3、$.map(array,callback);将一个数组中的元素转换到另一个数组中
4、$.inArray(value,array);确定第一个参数在数组中的位置(如果没有找到则返回 -1 ),从0开始。
5、$.merge( [0,1,2], [2,3,4] )
合并两个数组。返回的结果会修改第一个数组的内容,
第一个数组的元素后面跟着第二个数组的元素,不去掉重复项。
6、$.unique(array);删除数组中重复元素
7、$.trim(" hello, how are you? "); 去掉字符串起始和结尾的空格
8、$.isArray(obj);测试对象是否为数组。
9、$.isFunction(obj); 测试对象是否为函数
1、$.param(obj); 将表单元素数组或者对象序列化。是.serialize()的核心方法。
var params = { width:1680, height:1050 }; var str = jQuery.param(params);
2、$("form").serialize() ;序列表单内容为字符串,用于 Ajax 请求
if($("input[type='radio']:checked")){
var tt=$("input[name='chk']:checked").val();
}
var chkArr="";
$(".cc:checked").each(function(){
chkArr+=$(this).val()+"|";
});
var checked=$("#allchk").attr("checked");
$(".ww").each(function(){
if($(this).attr("checked")!=checked){$(this).click();}
316});