专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Ajax教程 » jquery和prototype框架的的不同以及冲突的解决 »正文

jquery和prototype框架的的不同以及冲突的解决

来源: 发布时间:星期三, 2008年9月17日 浏览:108次 评论:0

jquery和Prototype都含有$的方法,两者表达的意思也不同,对于

Prototype来说,它是个ID选择器,而对于jquery来说,实现的功能就多了,可以直接复制给jquery对象

这给大家一些问题

初次试用jQuery,到底是prototype好还是jquery好?

之前的项目已经使用了prototype,现加入jquery后,立刻罢工,搜了一下,还是有解决办法的,不过最后我还是抛弃prototype,开始使用jquery了。

<script src="prototype.js"></script>
<script src="http://www.crazycoder.cn/js/jquery.js"></script>
<script type="text/javascript">
      jQuery.noConflict();
</script>

注意:一定要先引入prototype.js 再引入jquery.js,先后顺序不可错。

如果先包含jQuery,将引起代码终止,作为提醒,jQuery将抛出一个异常:“You are overwriting jQuery, please include jQuery  last."

 prototype中最方便的函数莫过于

<input id="CrazyCoder" value="疯狂代码" type="text" />
$("CrazyCoder")   ===  document.getElementById("CrazyCoder")    某id的对象

$F("CrazyCoder")   ===  document.getElementById("CrazyCoder").value   表单的值

如今使用jquery,这些都没有了。

$("#id") 这样虽然也可以获得某id的对象,但是不能对此id进行常规的js操作。(也许有方法,不过我还不会。)

例如

<input id="CrazyCoder" value="疯狂代码" type="text" />
<div id="CrazyCoder">疯狂代码</div>

现在改为

id="CrazyCoder"的值"蓝色"改为 "疯狂";
id="CrazyCoder"的节点文字"疯狂代码"改为"<b>代码</b>"

 

prototype写法:
$("CrazyCoder") .value="http://www.crazycoder.cn/疯狂";
$("CrazyCoder").innerHTML="<b>代码</b>";  或者
Element.update("CrazyCoder", "<b>代码</b>");

这些都不能这么写,而要用

jquery写法:
$("#CrazyCoder") .val("疯狂");

$("#CrazyCoder").empty();    //先置空此元素
$("#CrazyCoder").append("<b>代码</b>");    //再添加新的字符串

如果你把prototype换成jquery了,但是还想使用prototype中的方便函数

建议自己定义两个函数

function $G(id){
 return document.getElementById(id);
}
function $F(id){
 return $G(id).value;
}

以前的javascript思想要改变了,用了jquery一切就要jquery的规范来,好处就是不用担心浏览器兼容性了,反正用的是jquery的函数,不兼容就是他的问题了,如果是自己随意写,就有浏览器的兼容性问题。

目前为止prototype最方便就是有chm手册,查询起来很方便,而jquery只有英文的api文档,虽然也不错,但还是期待jquery的中文chm。

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: