JavaScript开发中14个有用的Jquery技巧分享
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=”https://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的缓存机制浅析
-
JavaScript编程开发中基于jQuery的视频播放插件开发教程
-
JavaScript开发中利用jQuery将多条数据插入模态框的示例代码
-
JavaScript开发中14个有用的Jquery技巧分享
-
JavaScript开发中8个实用的jQuery技巧
-
jQuery编程开发中几种常用的提示效果代码分享
-
JavaScript编程开发中jQuery的text()方法用法分析
-
jquery中关于bind()方法的使用技巧分享
-
JavaScript开发中超级简单的jquery操作表格方法
-
JavaScript编程开发之jQuery中的编程范式详解