JQuery 浅谈-轻量级框架
(2010-08-19 14:23:04)
标签:
开发it |
分类: 程序开发与测试 |
大家在开发的时候,都使用过各种各样的框架,对框架的评价也好坏不一。
在这里推荐 一个很好的轻量级框架jQuery ,相信很多同学已经知道,并有在使用。
JQuery 的其中一个设计哲学是 “write less, do more”,虽然这是任何一个框架都必须去做的事情。但是能够做到这些的框架并不多见。如下举了一个CSS选择器的例子。
CSS选择器最常用的是传入,jQuery会帮你选择文档中符合要求的元素。然后,你就可以对这个元素集进行操作:
1.$("li").css("font-style", "italic");
这段脚本可以将所有li元素设置为斜体。这是jQuery最常见的用法,利用选择器选择自己所需的元素,然后对其执行某些操作。为了方便进行多个操作,jQuery绝大多数的函数都返回执行函数的原对象,在这里也就是$("li")。所以我们可以简单的继续写:
2.$("li").css("font-style", "italic").hide();
这里面透露出来了一个jQuery设计的哲学,即select then do,select就是选择所需的元素,do就是执行某些操作。绝大多数时候,我们都是select.do.do.select.do.do.do,比如说:
3.$("li").css("font-style", "italic").show().find("a").text("删除").attr("href", "javascript:void(0);").click(function ()
4.{ $(this).parent().hide(); });
很明显的,$("li")在select然后接着两个do,再然后.find("a"),这里在进一步进行select,然后继续执行一系列的do。注意在click绑定的事件处理函数里:$(this).parent().hide()也是一个非常经典的select.select.do。
这非常接近我们的自然语言,比如说上面那一段脚本,其实是这个意思:“所有的li元素听好了,把你们的字体搞成斜的,再给我显示出来,然后看看你们后代里面有没有a元素,让它把显示文字变成“删除”,再把href属性设置为"javascript:void(0);",最后他们被点击的时候,把他们的父亲隐藏掉。”是的,我完全是照着脚本直接就可以说出来,不需要任何思考和变换。接下来,我们来看看一个糟糕的例子:
5.var items = document.getElementsByTagName_r("li" );
6.for (var i = 0; i < items.length; i++)
7.{ var li = items.item(i);
8.li.style.fontStyle = "italic";
9.li.style.display = "";
10.var childs = li.childNodes;
11.for (var j = 0; j < childs.length; j++)
12.{ var a = childs[j];
13.if (a.tagName != "A")
14.continue;
15.a.innerText = "删除";
16.a.href = "javascript:void(0);";
17.a.onclick = function ()
18.{ this.parentNode.style.display = "none";
19.};
20.}
21.}
很难想象这段脚本只是完成了相同的事情。照着这段脚本你能简单的描述它是干什么的么?
jQuery并不仅仅只是帮我们节省了代码。更大的优势在于,它使得我们可以将逻辑和HTML文档彻底的分开。在Web开发中,我们经常会遇到这样的需求,jQuery会帮助我们很多