14个有用的Jquery技巧分享
作者:bea
1.通过方法返回Jquery对象实例 用 var someDiv = $(‘#someDiv').hide(); 代替 var someDiv = $(‘#someDiv'); someDiv.hide(); 2.使用find来查找 用 $(‘#someDiv').find(‘p.someClass').hide(); 代替 $(‘#someDiv p.someClass').hide();因为可以不必触发Jquery的Sizzle引擎,同时在写选择符的时候尽量让您的选择符简
1.通过方法返回Jquery对象实例
用 var someDiv = $(‘#someDiv').hide(); 代替 var someDiv = $(‘#someDiv'); someDiv.hide();
2.使用find来查找
用 $(‘#someDiv').find(‘p.someClass').hide(); 代替 $(‘#someDiv p.someClass').hide();因为可以不必触发Jquery的Sizzle引擎,同时在写选择符的时候尽量让您的选择符简单同时优化最右边的选择符
3.不要滥用$(this)
用 $(‘#someAnchor').click(function() { alert( this.id ); }); 代替 $(‘#someAnchor').click(function() {alert($(this).attr(‘id'));});
4.ready的简写形式
用 $(function() { }); 代替 $(document).ready(function() {});
5.让你的代码安全
方法1(使用noConflict)
代码如下:
var j = jQuery.noConflict();
j(‘#someDiv').hide();
// The line below will reference some other library's $ function.
$(‘someDiv').style.display = ‘none';
方法2(传入参数Jquery)
代码如下:
(function($) {
// Within this function, $ will always refer to jQuery
})(jQuery);
方法3(通过ready方法)
代码如下:
jQuery(document).ready(function($) {
// $ refers to jQuery
});
6.简化代码
用each代替for,使用数组保存临时变量,使用document fragment,这其实和写原生的Javascript需要注意的一样。
7.使用Ajax的方法
Jquery提供了get getJSON post ajax这些有用的ajax方法
8.访问原生的属性和方法 比如获取元素id的方法有
代码如下:
// OPTION 1 – Use jQuery
var id = $(‘#someAnchor').attr(‘id');
// OPTION 2 – Access the DOM element
var id = $(‘#someAnchor')[0].id;
// OPTION 3 – Use jQuery's get method
var id = $(‘#someAnchor').get(0).id;
// OPTION 3b – Don't pass an index to get
anchorsArray = $(‘.someAnchors').get();
var thirdId = anchorsArray[2].id;
9.使用PHP来检查Ajax请求
通过使用xhr.setRequestHeader(“X-Requested-With”, “XMLHttpRequest”); 服务器端如PHP就可以通过
代码如下:
function isXhr() {
return $_SERVER['HTTP_X_REQUESTED_WITH'] === ‘XMLHttpRequest';
}
来检查是不是Ajax请求,在一些禁用Javascript的情况下可能会用到
10.Jquery和$的关系
在Jquery代码的最下面,可以看到下面的代码 window.jQuery = window.$ = jQuery; $其实就是Jquery的一个shortcut
11.条件加载Jquery
代码如下:
<!– Grab Google CDN jQuery. fall back to local if necessary –>
<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js”></script>
<script>!window.jQuery && document.write(‘<script src=”js/jquery-1.4.2.min.js”></script>')</script>
如果CDN没有下载到Jquery,则从本地读取
12.Jquery Filters
代码如下:
<script>
$(‘p:first').data(‘info', ‘value'); // populates $'s data object to have something to work with
$.extend(
jQuery.expr[":"], {
block: function(elem) {
return $(elem).css(“display”) === “block”;
},
hasData : function(elem) {
return !$.isEmptyObject( $(elem).data() );
}
}
);
$(“p:hasData”).text(“has data”); // grabs paras that have data attached
$(“p:block”).text(“are block level”); // grabs only paragraphs that have a display of “block”
</script>
注:$.expr[":"]等价于$.expr.filters
13.hover方法
代码如下:
$(‘#someElement').hover(function() {
//在这里可以使用toggle方法来实现滑过和滑出的效果
});
14.传入属性对象
当创建一个元素的时候,Jquery1.4可以传入一个属性对象
代码如下:
$(‘</a>', {
id : ‘someId',
className : ‘someClass',
href : ‘somePath.html'
});
甚至是Jquery指定的属性或事件如text, click
有用 | 无用
用 var someDiv = $(‘#someDiv').hide(); 代替 var someDiv = $(‘#someDiv'); someDiv.hide();
2.使用find来查找
用 $(‘#someDiv').find(‘p.someClass').hide(); 代替 $(‘#someDiv p.someClass').hide();因为可以不必触发Jquery的Sizzle引擎,同时在写选择符的时候尽量让您的选择符简单同时优化最右边的选择符
3.不要滥用$(this)
用 $(‘#someAnchor').click(function() { alert( this.id ); }); 代替 $(‘#someAnchor').click(function() {alert($(this).attr(‘id'));});
4.ready的简写形式
用 $(function() { }); 代替 $(document).ready(function() {});
5.让你的代码安全
方法1(使用noConflict)
代码如下:
var j = jQuery.noConflict();
j(‘#someDiv').hide();
// The line below will reference some other library's $ function.
$(‘someDiv').style.display = ‘none';
方法2(传入参数Jquery)
代码如下:
(function($) {
// Within this function, $ will always refer to jQuery
})(jQuery);
方法3(通过ready方法)
代码如下:
jQuery(document).ready(function($) {
// $ refers to jQuery
});
6.简化代码
用each代替for,使用数组保存临时变量,使用document fragment,这其实和写原生的Javascript需要注意的一样。
7.使用Ajax的方法
Jquery提供了get getJSON post ajax这些有用的ajax方法
8.访问原生的属性和方法 比如获取元素id的方法有
代码如下:
// OPTION 1 – Use jQuery
var id = $(‘#someAnchor').attr(‘id');
// OPTION 2 – Access the DOM element
var id = $(‘#someAnchor')[0].id;
// OPTION 3 – Use jQuery's get method
var id = $(‘#someAnchor').get(0).id;
// OPTION 3b – Don't pass an index to get
anchorsArray = $(‘.someAnchors').get();
var thirdId = anchorsArray[2].id;
9.使用PHP来检查Ajax请求
通过使用xhr.setRequestHeader(“X-Requested-With”, “XMLHttpRequest”); 服务器端如PHP就可以通过
代码如下:
function isXhr() {
return $_SERVER['HTTP_X_REQUESTED_WITH'] === ‘XMLHttpRequest';
}
来检查是不是Ajax请求,在一些禁用Javascript的情况下可能会用到
10.Jquery和$的关系
在Jquery代码的最下面,可以看到下面的代码 window.jQuery = window.$ = jQuery; $其实就是Jquery的一个shortcut
11.条件加载Jquery
代码如下:
<!– Grab Google CDN jQuery. fall back to local if necessary –>
<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js”></script>
<script>!window.jQuery && document.write(‘<script src=”js/jquery-1.4.2.min.js”></script>')</script>
如果CDN没有下载到Jquery,则从本地读取
12.Jquery Filters
代码如下:
<script>
$(‘p:first').data(‘info', ‘value'); // populates $'s data object to have something to work with
$.extend(
jQuery.expr[":"], {
block: function(elem) {
return $(elem).css(“display”) === “block”;
},
hasData : function(elem) {
return !$.isEmptyObject( $(elem).data() );
}
}
);
$(“p:hasData”).text(“has data”); // grabs paras that have data attached
$(“p:block”).text(“are block level”); // grabs only paragraphs that have a display of “block”
</script>
注:$.expr[":"]等价于$.expr.filters
13.hover方法
代码如下:
$(‘#someElement').hover(function() {
//在这里可以使用toggle方法来实现滑过和滑出的效果
});
14.传入属性对象
当创建一个元素的时候,Jquery1.4可以传入一个属性对象
代码如下:
$(‘</a>', {
id : ‘someId',
className : ‘someClass',
href : ‘somePath.html'
});
甚至是Jquery指定的属性或事件如text, click
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- javascript实现回车键提交表单方法总结
- jquery文档操作wrap()方法实例简述
- js实现键盘控制DIV移动的方法
- js实现jquery的offset()方法实例
- 《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
- 《JavaScript DOM 编程艺术》读书笔记之DOM基础
- 《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
- javascript获取四位数字或者字母的随机数
- JS JQUERY实现滚动条自动滚到底的方法
- JavaScript Math.ceil 方法(对数值向上取整)
- 封装好的js判断操作系统与浏览器代码分享
- JavaScript Math.floor方法(对数值向下取整)
- 使用javascript实现json数据以csv格式下载
- js读取csv文件并使用json显示出来
- 微信JS接口汇总及使用详解
- PHP配置文件php.ini中打开错误报告的设置方法
- 推荐一款jQuery插件模板
- JavaScript中Cookie操作实例
- 使用javascript实现简单的选项卡切换