一、使用方式
1、引入jQuery的js文件
<script>
// 第一种
$(function{
// 执行代码
})
// 第二种
$(document).ready(function() {
// jQuery推荐的写法
});
// 第三种
window.onload = function() {
// 不推荐
// window.onload是在页面加载完成之后执行的函数,
// 如果你的你页面没有加载完毕,或者说某个东西没有加载出来,卡在那了,
// 那么window.onload就不会执行
}
// 自定义方法
function submit () {
}
//法一:事件名(函数) 即事件名作为 方法名来用
$("#btn").click(function() {console.log("点击了我");});
$("#btn").mouseover(function() {console.log("over");});
$("#btn").mouseout(function() {console.log("out")});
//法二:bind('事件名', 函数)绑定
$("#btn").bind('click', function() {console.log("点击");});
$("#btn").bind('mouseover', function() {console.log("鼠标上来...")});
$("#btn").bind('mouseout', function() {console.log("鼠标出去...")});
function fun1(){
//第一个 :first
$('li:first').css('color','pink');
//最后一个 :last
$('li:last').css('color','pink');
//:eq()参数是下标 从0开始
$('li:eq(2)').css('color','pink');
//:gt() 大于某个下标 :lt()小于某个下标
$('li:gt(4)').css('color','pink');
// :even 所有偶数 从0开始
$('li:even').css('color','pink');
// :odd所有奇数 从0开始
$('li:odd').css('color','pink');
//:not() 除了
$('li:not(#a1)').css('color','pink');
// :header h1-h6的
$(':header').css('color','pink');
// 选取当前获取焦点的元素
:focus
//注意!!在组合选择器在试用前下标会归位,即从0开始
// 请求接口数据
$.ajax({
url:"#",
type:"post",
dataType:"json",
success: function (newslist) {
console.log(newslist)
},
error: function(err) {
console.log(err)
}
})
var configObj = {
method //数据的提交方式:get和post
url //数据的提交路劲
async //是否支持异步刷新,默认是true
data //需要提交的数据
dataType //服务器返回数据的类型,例如xml,String,Json等
success //请求成功后的回调函数
error //请求失败后的回调函数
}
$.ajax(configObj);//通过$.ajax函数进行调用。
}
</script>
// 元素绑定事件
<input type="button" name="" value="触发" onclick="fun1()" id="">
二、如何找到所有 HTML select 标签的选中项?
$('[name=selectname] :selected')
三、jquery怎么移除标签onclick属性
获得a标签的onclick属性: $(“a”).attr(“onclick”)
删除onclick属性: $(“a”).removeAttr(“onclick”);
设置onclick属性: $(“a”).attr(“onclick”,“test();”);
四、addClass,removeClass,toggleClass的使用。
$(selector).addClass(class):为每个匹配的元素添加指定的类名
$(selector).removeClass(class):
从所有匹配的元素中删除全部或者指定的类,删除class中某个值;
$(selector).toggleClass(class):如果存在(不存在)就删除(添加)一个类
$(selector).removeAttr(class);删除class这个属性;
$("p span") // 后代选择器
// 注:后代选择器选择父元素所有指定选择的元素,不管是儿子级,还是孙子级
$("p>span") // 子选择器
// 注:子选择器只选择直属于父元素的子元素
$(".one+p") // 同辈选择器
// 选取class为one的下一个<p>同辈元素集合
$("#two~p") // 同辈选择器
// 选取id为two的元素后所有<p>同辈元素集合
$("p:contains('我')") // 内容过滤选择器
// 选取含有文本“我”的元素
$("p:empty")
// 选取不包含子元素或者文本元素的空<p>元素(<p></p>)
$("p:has(p)") // 选取含有选择器所匹配的元素的元素,返回元素集合
// 选取含有<p>元素的<p>元素(<p><p/></p>)
$("p:parent") // 选取含有子元素或者文本的元素,返回元素集合
// 选取含有子元素或者文本元素的<p>元素
:focus // 选取当前获取焦点的元素
:hidden // 选取所有不可见的元素,返回元素集合
:visible // 选取所有可见的元素,返回元素集合
// 属性过滤选择器
$("p[id]") 选取拥有id属性的p元素
$("input[name=text]") 选取拥有name属性等于text的input元素
$("input[name!=text]") 选取拥有name属性不等于text的input元素
$("input[name^=text]") 选取拥有name属性以text开始的input元素
$("input[name$=text]") 选取拥有name属性以text结束的input元素
$("input[name*=text]") 选取拥有name属性含有text的input元素
$("input[class~=text]") 选取拥有class属性以空格分割的值中含有text的input元素
[attribute1][attribute2][attributeN] 合并多个属性过滤选择器
:enabled // 选取所有可用元素
:disabled // 选取所有不可用元素
:checked // 选取所有被选中的元素(单选框,复选框)
$("input:checked") 选取所有被选中的<input>元素
:selected // 选取所有被选中的选项元素(下拉列表)
$("select option:selected") 选取所有被选中的选项元素
:text // 选择所有的单行文本框
$(":text") // 选取所有的单行文本框
:password // 选择所有的密码框
:button // 选择所有的按钮
:checkbox // 选择所有的多选框
五、jQuery中的Delegate()函数有什么作用?
delegate()会在以下两个情况下使用到:
1、如果你有一个父元素,需要给其下的子元素添加事件,这时你可以使用delegate()了,代码如下:
$(“ul”).delegate(“li”, “click”, function(){
$(this).hide();
});
2、当元素在当前页面中不可用时,可以使用delegate()
六、$(document).ready()方法和window.onload有什么区别?
(1)、window.onload方法是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行的。
(2)、$(document).ready() 方法可以在DOM载入就绪时就对其进行操纵,并调用执行绑定的函数。
七、如何用jQuery禁用浏览器的前进后退按钮?
<script type="text/javascript" language="javascript">
$(document).ready(function() {
window.history.forward(1);
//OR window.history.forward(-1);
});
</script>
八、jquery中 $ .get()提交和$.post()提交有区别吗?
相同点:都是异步请求的方式来获取服务端的数据;
1、请求方式不同: $ .get() 方法使用GET方法来进行异步请求的。$.post() 方法使用POST方法来进行异步请求的。
2、参数传递方式不同:get请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给Web服务器的,这种传递是对用户不可见的。
3、数据传输大小不同:get方式传输的数据大小不能超过2KB 而POST要大的多
4、安全问题: GET 方式请求的数据会被浏览器缓存起来,因此有安全问题。
九、jQuery的事件委托方法bind 、live、delegate、on之间有什么区别?
(1)、bind 【jQuery 1.3之前】
定义和用法:主要用于给选择到的元素上绑定特定事件类型的监听函数;
语法:bind(type,[data],function(eventObject));
特点:
(1)、适用于页面元素静态绑定。只能给调用它的时候已经存在的元素绑定事件,不能给未来新增的元素绑定事件。
(2)、当页面加载完的时候,你才可以进行bind(),所以可能产生效率问题。
实例如下:$( “#members li a” ).bind( “click”, function( e ) {} );
(2)、live 【jQuery 1.3之后】
定义和用法:主要用于给选择到的元素上绑定特定事件类型的监听函数;
语法:live(type, [data], fn);
特点:
(1)、live方法并没有将监听器绑定到自己(this)身上,而是绑定到了this.context上了。
(2)、live正是利用了事件委托机制来完成事件的监听处理,把节点的处理委托给了document,新添加的元素不必再绑定一次监听器。
(3)、使用live()方法但却只能放在直接选择的元素后面,不能在层级比较深,连缀的DOM遍历方法后面使用,即 $ (“ul”").live…可以,但$(“body”).find(“ul”).live…不行;
实例如下:$( document ).on( “click”, “#members li a”, function( e ) {} );
(3)、delegate 【jQuery 1.4.2中引入】
定义和用法:将监听事件绑定在就近的父级元素上
语法:delegate(selector,type,[data],fn)
特点:
(1)、选择就近的父级元素,因为事件可以更快的冒泡上去,能够在第一时间进行处理。
(2)、更精确的小范围使用事件代理,性能优于.live()。可以用在动态添加的元素上。
实例如下:
$("#info_table").delegate(“td”,“click”,function(){/显示更多信息/});
$(“table”).find("#info").delegate(“td”,“click”,function(){/显示更多信息/});
(4)、on 【1.7版本整合了之前的三种方式的新事件绑定机制】
定义和用法:将监听事件绑定到指定元素上。
语法:on(type,[selector],[data],fn)
实例如下:$("#info_table").on(“click”,“td”,function(){/显示更多信息/});参数的位置写法与delegate不一样。
说明:on方法是当前JQuery推荐使用的事件绑定方法,附加只运行一次就删除函数的方法是one()。
总结:.bind(), .live(), .delegate(),.on()分别对应的相反事件为:.unbind(),.die(), .undelegate(),.off()