如何动态分配页面的id

问题描述

如题。谢谢问题补充:JavaScript问题补充:页面有很多元素,不想为其一个一个设置id,想用一个js自动生成,类似javaeyeXXXX,XXXX为自动生成。每次访问页面,均有不同的值。问题补充:对应achun:公司有一产品,近改版,用ajax实现。产品页面id,大都动态获取id。刚收到需求,用selenium测试。周末,不能回去研究其代码,自己有不熟悉这一块,故此一问。

解决方案

原来是这样,要用ajax实现。那对于动态ID的情况应该属于第2种情况了。首先是技术选型问题,你用在ajax种用什么技术实现这个。如果你还没有选型的话,我强烈建议你用我写的前台模板工具jCT专题,对于例子来说,由于jCT有3个版本,版本间是不兼容的1版已经废弃2版有一个站点在用3版最近才做出来建议你看3版的例子,目前例子只有一个,我们的内部测试站点http://ne.16lo.com/http://ne.16lo.com/?entry=achun这两个是同样的任务两种不同的写法,现在还没有做完(因为是研发,所以好多东西都是试验)。你先看看(用firefox+firebug查看吧),如果对我的这种设计方法感兴趣,我们可以进一步联系.好了该说你的问题了。既然你的问题属于2.ID是有规则的,可以用代码计算出来然后对对应的Element进行处理。也就是id跟数据的含义有关了,比如,如果是分类ID可以用category_1,category_2,category_n那具体方法和ham说的也查不多。关键是你的数据和页面表现的装配是如何进行的。既然你说是用javascript来做那用前台模板来实现是再好不过了。可以达到前台模板的工具有1.GWT2.JST3.jCT我当然推荐你用jCT了
解决方案二:
分开写关于ajax,这个其实就是个小工具,很容易使用的,我现在熟悉的实现是jQuery的。我的例子里用的也是jQuery.对于ajax使用当中的一些问题,我的jCT专题里也有解决方案。要补充的是,由于ajax在执行过程中可能有很多情况造成请求失败,除了网络连接问题造成的ajax error外,就是服务器端的问题了,比如访问量过大,数据库忙,系统动态部分在维护等等,都会造成请求数据失败,我用了一个简单的方法来解决问题,(我的ajax都是基于JSON的)就是不管那一种失败,服务器都输出一段两端代双引号的文字,这段可以被JSON正确解析正字符串的,也就是说如果ajax获取的数据经过JSON后是一段字符串,那一定是出错了,有了这个判断,对应错误的处理就可以统一进行了。
解决方案三:
对应楼主每次访问页面,均有不同的值的要求,不知目的为何?
解决方案四:
首先楼主这个问题和应用有关的,关键是产生ID后,还能再次访问他。大概有两种情况:1.ID是无规则的2.ID是有规则的,可以用代码计算出来然后对对应的Element进行处理。大概途径有:1.想办法替代通过ID来选择Element,处理相应行为。2.手工代码了设置id3.用复杂的规则为Element绑定特殊信息,此信息可以再次通过运算来对应Element.方法3不好讲。我现在没有思路,为这个费太大力气不值得。因为我有更好的方法方法2可以解决一些特殊的需求。我这里提供一个自己原创的方法。Action By Class,利用Element 的class触发行为这种方法能适应大多数需求,减少了设置ID的数目,变通的解决了你的问题。
解决方案五:
document.documentElement是获取的文档根节点即HTML元素,而通常要设置id的仅仅是BODY中的内容.所以用documentElement只会引起不必要的性能丢失.其实我的代码和congjl2002的差不多,只是将documentElement改为了body.var elements=document.body.childNodes;for(var i=0;i<elements.length;i++){ if(elements[i].nodeType==1){//这条if语句是为兼容FireFox而准备的.如果只是在IE中使用,则不需要. elements[i].id="javaeye"+i; //也可使用congjl2002的方法. //elements[i].setAttribute("id","javaeye"+i);效果一样. }}这样就完成了对所有元素的id动态赋值.
解决方案六:
试试x=document.documentElement.childNodes;//获得所有节点for (i=0;i<x.length;i++){ if (x[i].nodeType==1) { x[i].setAttribute("id","javaeye"+i); document.write(x[i].nodeName); document.write(x[i].getAttribute("id")); } }
解决方案七:
没明白?举个例子吧
解决方案八:
不好意思, 看错了, 我还以为是java类的 hehe
解决方案九:
如果用java的可以使用java.util.UUID

时间: 2024-08-01 11:46:29

如何动态分配页面的id的相关文章

mvc 怎么获取菜单页面的ID?

问题描述 mvc 怎么获取菜单页面的ID? 最近在设计权限菜单控制系统,现已实现了对不同角色菜单的展示,每一个菜单中页面的UI动作控制按钮怎么加载?menulist += ' 这个是加载菜单的js脚本, function GetAction(menuId) { var postdata = { MenuId: menuId RoleId:""1"" }; $.post(""/sysManage/GetAction"" post

extjs4怎么获取当前点击的tab页面的ID

问题描述 extjs4怎么获取当前点击的tab页面的ID 在主界面中点击表格会随机生成一个tab页面分别随机分配了tab id我要怎么点击页面才知道点击的tab页面的id 解决方案 var tab=tabpanel.getActiveTab( ) :alert(tab.id) 解决方案二: 看文档啊.你点击时可以获取到当前点击的tab对象的.然后你可以获得tab对象所有属性值.

C# ASP.NET如何在母版页使用其他页面的div的id

问题描述 C# ASP.NET如何在母版页使用其他页面的div的id 如上所述,C# ASP.NET如何在母版页使用其他页面的div的id 解决方案 不知道你的其它页面是什么意思,如果是包含的内容页,那么可以.不过这样做,你的母版页就不通用了,它和具体的内容页耦合在一起了.模板页的设计初衷就是将页面上共同的通用的部分独立出来,所以按理说应该是内容页单向依赖模板页.参考:http://www.cnblogs.com/liwuyi/archive/2012/04/27/2473819.html 解决

使用CSS定位页面的“footer”

基本思路 首先考虑外层设置一个容器div,id设为#container,使他的高度为浏览器窗口的高度,然后将#footer这个div设置为#container的子div,并使用绝对定位的方式,使他固定到 #container 的底端,以实现希望的效果. 点击这里察看案例页面效果.改变浏览器的高度和宽度,可以看到Footer部分的效果. 代码实现 下面先考虑HTML结构,这个演示页面的HTML代码非常简单. <div id="container"> <div id=&q

jsp页面-如何在一个JSP页面的4行中分别对映输出4行TXT文档的内容,具体的看图~~

问题描述 如何在一个JSP页面的4行中分别对映输出4行TXT文档的内容,具体的看图~~ 这张是最后要实现的效果图,里面的IP都是我手打的.. 这张是需要读出的文本,最终要传入到页面中的INPUT标签中 解决方案 跪求哪位大神帮忙啊~~~ 解决方案二: 求指导啊.很急..... 解决方案三: 这个简单啊.很容你用文件读取 直接一行一行读取出来. 解决方案四: try { String encoding="GBK"; File file=new File(filePath); if(fil

url-IE8 获取父页iframe id

问题描述 IE8 获取父页iframe id 以下在IE8中刷新iframe不执行也不报错直接显示404错误.在谷歌浏览器一切正常 求兼容IE刷新iframe的方法 parent.window.frames["wddb"].location.replace(url); 解决方案 增加id,试试下面的 parent.document.getElementById("wddb").contentWindow.location.replace(url);

浏览器-myeclipse中的Jsp页面的ajax怎么一直实现不了,哪位大神给看看。。。

问题描述 myeclipse中的Jsp页面的ajax怎么一直实现不了,哪位大神给看看... function ajax(){ //声明一个空对象 用来装入xmlhttprequest对象 var xmlhttpreq=null; // 首先判断浏览器的使用情况,然后给XMLHttpRequest对象赋值,进行实例化 if (window.ActiveXObject){ xmlhttpreq = new ActiveObject("Microsoft.XMLHTTP"); }else i

js-子页面查找父页面的div元素

问题描述 子页面查找父页面的div元素 window.parent.frm_main.selectWebhChatTab(); frm_main是父页面div的id,在这个div里有selectWebhChatTab();这个方法. 我用上面那条语句 报对象不支持"selectWebhChatTab"属性或方法这个错误 求大神知道. 解决方案 子页面获取父页面元素的方法easyUI的iframe子页面操作父页面元素easyUI的iframe子页面操作父页面元素-------------

异域怎么取 iframe 里页面的title

问题描述 异域怎么取 iframe 里页面的title 异域怎么取 iframe 里页面的title Asp做的网站 解决方案 嵌入进来后就是一堆html,你用JavaScript根据id啥的取就行了 解决方案二: 首先要拿到这个iframe 然后再通过iframe取到他的title 具体:var ifr = document.getElementById('ifr'); var win = ifr.window || ifr.contentWindow; // 考虑兼容性问 win.find(