网络编程
位置:首页>> 网络编程>> JavaScript>> 利用mergeAttributes设置name属性

利用mergeAttributes设置name属性

  发布时间:2009-12-12 18:48:00 

标签:setAttribute,dom,ie,

在国外一博客看到的技巧,终于解决IE的这个老大难问题。我在IE的setAttribute bug也提到其解决方法,一是innerHTML,一是IE特别的creatElement使用方法,不过都是要求在生成DOM时一同搞定name属性,这种在DOM生成后再修改name属性的方法真是高明啊。

介绍一下mergeAttributes 方法。它有两个参数oSource与 bPreserve :

mergeAttributes
oSourceIE5.0 必选项。对象(Element)。指定属性要被复制到 object 的对象。
bPreserveIE5.5 可选项。布尔值(Boolean)。 false :  不保护目标对象的身份属性(id,name)。 true : 默认值。保护目标对象 object 的身份属性。

mergeAttributes方法能把oSource 对象的所有属性,包括自定义属性,依附在其上面的事件与样式都复制过,在 IE5.0 及之前的版本中,只读属性不会被复制。如 id 属性。 在 IE5.5+ 中,通过设置 bPreserve 参数值为 false ,可以使 oSource 的所有属性被复制到 调用此方法的对象上 ,包括id属性和 name属性。

//下面代码会把新生成的input对象的name属性复制到inputObject对象上。

.inputObject.mergeAttributes(document.createElement("<input name='nasami' />"))

下面是一个完美的设置属性的方案

var setAttribute = function(obj,attrName,attrValue){ 
if("!+\v1" && attrName === "name"){ 
obj.mergeAttributes(document.createElement("<input name='" + attrValue + "'/>"), false); 

}else{ 

if(obj.setAttribute){ 
     
obj.setAttribute(attrName,attrValue); 
 
}else{ 
     
obj[attrName] = attrValue; 
   
}    
}          
}

0
投稿

猜你喜欢

  • ASP实例代码,利用SQL语句动态创建Access表。留作参考,对在线升级数据库有用处.<% nowtime = now()
  • 问一下谁知道如何用 javascript 获取硬盘信息1.获得硬盘当前有几个盘符.2.每个盘符的 大小,已经使用的大小,和没有使用的大小原理
  • 有效地加载数据有时我们需大量地把数据加载到数据表,采用批量加载的方式比一个一个记录加载效率高,因为MySQL不用每加载一条记录就刷新一次索引
  • 以下摘录自 oreilly.JavaScript.The.Definitive.Guide.5th.Edition.Aug.200
  • 小贤是一条可爱的小狗(Dog), 它的叫声很好听(wow), 每次看到主人的时候就会乖乖叫一声(yelp).从这段描述可以得到以下对象:fu
  • javascript可以根据输入值自动搜索显示相关的select列表,对于列表很长时可以很方便的查找到要的值。js代码:<script
  • 大家可能经常会遇到这种情况:sql="select * from table"set rs=conn.execute(s
  • 和单选框一样,许多新手在用 Javascript 验证表单(form)中多选框(checkbox)的值时,都会遇到问题,原因是 checkb
  • 同质化的网站越来越多,往往你还没发展起来,就已有许多站点抄袭走了你的成果,如何留下用户?——让用户有更好的使用体验。一些网页上的小技巧,可以
  • 用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“
  • 为了应用方便,您可能需要给数据库的每条记录都添加日期/时间戳,以便确定各个记录添加到数据库的时间。在Access数据库应用中,使用Now()
  • 当浏览者进入你的网站首页时或提交某些表单时,会弹出网站声明或提交说明等文本信息框,引导浏览者使用你的网站。实现这个功能我们是用Dreamwe
  • 看到论坛上有人模仿alert,自己也写了一个。本来想模仿winapi里的MessageBox ;但可惜js 不支持,阻塞模式。返回值只能用异
  • 在分析sIFR之前,先来快速的了解一下sIFR是什么,以及它是如何工作的。sIFR表示scalable Inman Flash Replac
  • 大大小小也搞过一些数据库设计,见过一些其他人的设计,看过些书,总结总结,经验谈。选表类型:大家都知道mysql的myisam表适合读操作大,
  • 恭喜您,您中奖了,你的中奖码是(请牢记,领奖需要):XXXXXXXXXXX然后用户输入XXXXXXXXXXX,简单验证后就可以领奖了。你使用
  • 这个问题对于规模稍微大些的项目而言,显得尤其重要了,数据库中如果有几百个存储过程, 难道还一个个找不成,即使自己很了解业务和系统,时间长了,
  • ADO对象: Connection Command Recordset Record Stream ASP支持的对象很多,可以自己编写COM
  • 大家都熟悉迅雷看看里面的电影人气指数这个小图标吧先看看我的效果图再看看迅雷的截图比较好看,是根据电影的人气指数来显示热度,下面我们就来模仿一
  • 熟悉css的开发者一定知道图像替换技术,也深知它的意义,Dave Shea 曾在他的一篇文章对此做了详细的总结,参看 Dave Shea’s
手机版 网络编程 asp之家 www.aspxhome.com