收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 6089|回复: 8

jquery和prototype的简单比较,以及冲突解决

[复制链接]
发表于 2007-2-15 01:02:35 | 显示全部楼层 |阅读模式
初次试用jQuery,到底是prototype好还是jquery好?

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

  1. <script src="prototype.js"></script>
  2. <script src="http://blogbeta.blueidea.com/jquery.js"></script>
  3. <script type="text/javascript">
  4.       jQuery.noConflict();
  5. </script>
复制代码

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

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

prototype中最方便的函数莫过于

  1. <input id="blueidea" value="蓝色" type="text" />
  2. $("blueidea")   ===  document.getElementById("blueidea")    某id的对象

  3. $F("blueidea")   ===  document.getElementById("blueidea").value   表单的值
复制代码


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

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

例如
  1. <input id="blue" value="蓝色" type="text" />
  2. <div id="idea">蓝色理想</div>
复制代码

现在要改为
  1. id="blue"的值"蓝色"改为 "经典";
  2. id="idea"的节点文字"蓝色理想"改为"<b>经典论坛</b>"
复制代码

  1. prototype写法:
  2. $("blue") .value="http://blogbeta.blueidea.com/经典";
  3. $("idea").innerHTML="<b>经典论坛</b>";  或者
  4. Element.update("idea", "<b>经典论坛</b>");
复制代码


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

  1. jquery写法:
  2. $("#blue") .val("经典");

  3. $("#idea").empty();    //先置空此元素
  4. $("#idea").append("<b>经典论坛</b>");    //再添加新的字符串
复制代码


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

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

[[i] 本帖最后由 yytcpt 于 2007-2-15 01:08 编辑 ]

评分

参与人数 1威望 +2 收起 理由
Sheneyan + 2 原创内容

查看全部评分

发表于 2007-2-15 01:50:17 | 显示全部楼层
$("#id") 这样虽然也可以获得某id的对象,但是不能对此id进行常规的js操作

好像不存在这个问题吧!

第二个直接
  1. $("#idea").text("<b>经典论坛</b>");   
复制代码

不就行了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-15 10:01:22 | 显示全部楼层
$("#idea").text("<b>经典论坛</b>");   


这个也是jquery的操作,我说的常规方法是指
document.getElementById("idea").innerHTML = "<b>经典论坛</b>";
document.getElementById("idea").text = "<b>经典论坛</b>";
回复 支持 反对

使用道具 举报

发表于 2007-2-15 12:57:31 | 显示全部楼层
用我写的类库JsEasy可以用$("#idea").innerHTML="<b>经典论坛</b>"

看看把http://545at.com/
回复 支持 反对

使用道具 举报

发表于 2007-2-15 16:58:01 | 显示全部楼层
prototype 和 jQuery 执行起来效率是个大问题。

尝试了几个应用,又改回自己写脚本了
回复 支持 反对

使用道具 举报

发表于 2007-2-21 14:26:49 | 显示全部楼层
我看了一下,我的晒阳D331 经常占80%左右的cpu
jquery有中文api文档
jqueyr.org.cn
回复 支持 反对

使用道具 举报

发表于 2007-3-5 12:53:40 | 显示全部楼层
Jquery一样可以直接对某id的对象进行常规的js操作

$("#Id").get(0)可以得到常规的对象
之后就可以进行常规的操作了

欢迎交流:120998733
回复 支持 反对

使用道具 举报

发表于 2007-3-5 15:13:45 | 显示全部楼层
jquery.org.cn 打不开啊,奇怪!

哦,是打错了。

[[i] 本帖最后由 hwg3000 于 2007-3-5 15:33 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2007-3-6 13:49:55 | 显示全部楼层

请看此贴,有详细解释。

Jquery对象与DOM元素对象
http://bbs.jquery.org.cn/thread-35-1-1.html
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( ICP05002321 )  

GMT+8, 2019-7-21 23:59 , Processed in 0.093512 second(s), 13 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表