请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 4271|回复: 8

jquery和prototype的简单比较,以及冲突解决 [复制链接]

yytcpt 楼主

太极无影

荣誉管理 手机认证 

帖子
1310
体力
9055
威望
15
发表于 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。

[ 本帖最后由 yytcpt 于 2007-2-15 01:08 编辑 ]
已有 1 人评分威望 收起 理由
Sheneyan + 2 原创内容

总评分: 威望 + 2   查看全部评分

西部数码顶级域名注册商39元抢注!
lzyy 

无网不剩

荣誉管理 手机认证 

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

好像不存在这个问题吧!

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

不就行了?
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

yytcpt 楼主

太极无影

荣誉管理 手机认证 

帖子
1310
体力
9055
威望
15
发表于 2007-2-15 10:01:22 |显示全部楼层
$("#idea").text("<b>经典论坛</b>");   


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

使用道具 举报

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

看看把http://545at.com/

使用道具 举报

宝儿

荣誉管理

帖子
1600
体力
11357
威望
43
发表于 2007-2-15 16:58:01 |显示全部楼层
prototype 和 jQuery 执行起来效率是个大问题。

尝试了几个应用,又改回自己写脚本了

使用道具 举报

帖子
158
体力
647
威望
0
发表于 2007-2-21 14:26:49 |显示全部楼层
我看了一下,我的晒阳D331 经常占80%左右的cpu
jquery有中文api文档
jqueyr.org.cn

使用道具 举报

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

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

欢迎交流:120998733

使用道具 举报

帖子
58
体力
254
威望
0
发表于 2007-3-5 15:13:45 |显示全部楼层
jquery.org.cn 打不开啊,奇怪!

哦,是打错了。

[ 本帖最后由 hwg3000 于 2007-3-5 15:33 编辑 ]

使用道具 举报

aaxron 
帖子
24
体力
5
威望
0
发表于 2007-3-6 13:49:55 |显示全部楼层

请看此贴,有详细解释。

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

使用道具 举报

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

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-11 04:24 , Processed in 0.074352 second(s), 11 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部