点击展开、折叠,只在谷歌浏览器里管用,为什么? 展开折叠 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置style要用 xxx.style.display,不用setAttribute,这个是设置自定义属性的 <tbody><volist name="list" id="ov"> <!-- 每条记录是ov,有多个元素,其中child元素是数组,其各元素存储该“合并”行的明细,可展开 --> <tr> <!-- 相同d_code的合并显示行 --> <td><a href="javascript:void(0)"><img id="<{$ov.d_code}>" onclick="foo(this.id)" src="jia.png" /></a></td> <!-- 行首小图标:加号或减号 --> ...<td>... </tr> <volist name="ov.child" id="vv"> <!--上面合并显示行所对应的子行,默认不显示,点击img则显示--> <tr target="s_id" rel="<{$ov.id}>" id="<{$vv.id}>" name="<{$vv.d_code}>" style='display:none;'> ...<td>... </tr> </volist></volist>...function foo(idx){ var items = document.getElementsByName(idx); var miniPic = document.getElementById(idx); for (var j=0; j<items.length; j++) { if (getCookie(items[j].getAttribute("id")) == null) //第一次点击 {// miniPic.setAttribute('src', '__PUBLIC__/Images/jian.png');// items[j].setAttribute('style', 'table-row'); miniPic.src = '__PUBLIC__/Images/jian.png'; items[j].style.display = 'table-row'; setCookie(items[j].getAttribute("id"),1); } else //不是第一次点击,已有cookie { if (getCookie(items[j].getAttribute("id")) == 1) { //已展开// miniPic.setAttribute('src', '__PUBLIC__/Images/jia.png');// items[j].setAttribute('style', 'display:none;'); miniPic.src = '__PUBLIC__/Images/jia.png'; items[j].style.display = 'none'; setCookie(items[j].getAttribute("id"),0); } else {// miniPic.setAttribute('src', '__PUBLIC__/Images/jian.png');// items[j].setAttribute('style', 'table-row'); miniPic.src = '__PUBLIC__/Images/jian.png'; items[j].style.display = 'table-row'; setCookie(items[j].getAttribute("id"),1); } } }}请帮忙看看 发客户端的代码,还有css,发服务器端的没办法测试 我用IE访问页面,在现实表格这个页面,查看源文件,代码里看不到关于表格的内容,只有类似框架的代码。如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=7" /><title>...</title>...<link href="/Public/dwz/themes/default/style.css" rel="stylesheet" type="text/css" /><link href="/Public/dwz/themes/css/core.css" rel="stylesheet" type="text/css" /><!--[if IE]><link href="/Public/dwz/themes/css/ieHack.css" rel="stylesheet" type="text/css" /><![endif]--><script src="/Public/dwz/js/speedup.js" type="text/javascript"></script><script src="/Public/dwz/js/jquery-1.7.1.min.js" type="text/javascript"></script><script src="/Public/dwz/js/jquery.cookie.js" type="text/javascript"></script><script src="/Public/dwz/js/jquery.validate.js" type="text/javascript"></script><script src="/Public/dwz/js/jquery.bgiframe.js" type="text/javascript"></script><script src="/Public/xheditor/xheditor-1.1.9-zh-cn.min.js" type="text/javascript"></script><script src="/Public/dwz/js/dwz.min.js" type="text/javascript"></script><script src="/Public/dwz/js/dwz.regional.zh.js" type="text/javascript"></script><script type="text/javascript">function fleshVerify(){ //重载验证码 $('#verifyImg').attr("src", '/index.php/Public/verify/'+new Date().getTime());}function dialogAjaxMenu(json){ dialogAjaxDone(json); if (json.statusCode == DWZ.statusCode.ok){ $("#sidebar").loadUrl("/index.php/Public/menu"); }}function navTabAjaxMenu(json){ navTabAjaxDone(json); if (json.statusCode == DWZ.statusCode.ok){ $("#sidebar").loadUrl("/index.php/Public/menu"); }}$(function(){ DWZ.init("/Public/dwz/dwz.frag.xml", { loginUrl:"/index.php/Public/login_dialog", loginTitle:"登录", // 弹出登录对话框// loginUrl:"/index.php/Public/login", //跳到登录页面 statusCode:{ok:1,error:0}, pageInfo:{pageNum:"pageNum", numPerPage:"numPerPage", orderField:"_order", orderDirection:"_sort"}, //【可选】 debug:false, // 调试模式 【true|false】 callback:function(){ initEnv(); $("#themeList").theme({themeBase:"/Public/dwz/themes"}); } });});</script></head><body scroll="no"> <div id="layout"> <div id="header"> <div class="headerNav"> <a class="logo" href="/index.php">Logo</a> <ul class="nav"> <!-- <li><a href="/" target="_blank">前台首页</a></li> --> <li><a onclick="testConfirmMsg('/index.php/System/ClearCase')" href="javascript:;" >清理缓存</a></li> <script type="text/javascript"> function testConfirmMsg(url, data){ alertMsg.confirm("您确定要清理缓存文件吗?", { okCall: function(){ $.post(url, data, DWZ.ajaxDone, "json"); } }); } </script> <li><a href="/index.php/Public/main" target="dialog" width="580" height="360" rel="sysInfo">系统消息</a></li> <li><a href="/index.php/Public/changepwd/" target="dialog" mask="true">修改密码</a></li> <li><a href="/index.php/Public/logout/">退出</a></li> </ul> <ul class="themeList" id="themeList"> <!-- <li style="color:#B9CCDA">欢迎你,管理员,这是您的第 38 次登陆</li> --> <li style="color:#B9CCDA">欢迎您,管理员,您是本站的第 39 位访客</li> <li theme="default"><div class="selected">蓝色</div></li> </ul> </div> </div> <div id="leftside"> <div id="sidebar_s"> <div class="collapse"> <div class="toggleCollapse"><div></div></div> </div> </div> <!--菜单栏 start --> <div id="sidebar"> <div class="toggleCollapse"><h2>主菜单</h2><div>收缩</div></div> <div class="accordion" fillSpace="sidebar"> <!-----------------------------------------------------------------------------------> <div class="accordionHeader"> <h2><span>Folder</span>工程管理</h2> </div> <div class="accordionContent"> <ul class="tree treeFolder"> <li><a href="/index.php/User/summary" target="navTab" rel="sumUser">首页</a></li> <li><a href="/index.php/User/index" target="navTab" rel="indexUser">工程列表</a></li> <li><a href="/index.php/User/add" target="navTab" rel="addUser">添加工程</a></li> <li><a href="/index.php/User/downexcel" target="downexcelUser" targetType="navTab">导出工程</a></li> <li><a href="/index.php/User/import" target="navTab" rel="importUser">导入工程</a></li> <li><a href="/index.php/User/search" target="navTab" rel="searchUser">高级检索</a></li> <li><a href="/index.php/User/advanced" target="navTab" rel="advancedUser">高级功能</a></li> </ul> </div> </div> </div> </div> </div> </div> <!--菜单栏 end --> </div> <div id="container"> <div id="navTab" class="tabsPage"> <div class="tabsPageHeader"> <div class="tabsPageHeaderContent"><!-- 显示左右控制时添加 class="tabsPageHeaderMargin" --> <ul class="navTab-tab"> <li tabid="main" class="main"><a href="javascript:void(0)"><span><span class="home_icon">我的主页</span></span></a></li> </ul> </div> <div class="tabsLeft">left</div><!-- 禁用只需要添加一个样式 class="tabsLeft tabsLeftDisabled" --> <div class="tabsRight">right</div><!-- 禁用只需要添加一个样式 class="tabsRight tabsRightDisabled" --> <div class="tabsMore">more</div> </div> <ul class="tabsMoreList"> <li><a href="javascript:void(0)">后台主页</a></li> </ul> <div class="navTab-panel tabsPageContent layoutBox"> <!--后台首页右边开始 --> <div style="background:url(/Public/dwz/themes/default/images/adminindex.jpg) center center no-repeat; height:100%; width:100%; background-color:#102947;"></div> <!--后台首页右边结束 --> </div> </div> </div> </div> </div> <div id="footer">Copyright © 2014 <a href="http://www.ha.chinamobile.com" target="_blank">信阳移动网络部全业务信息化支撑班组</a> 网站技术支持:18790092031</div></body></html> 在IE里items[j].style.display = "";或items[j].style.display = "table-row";都不显示,在谷歌浏览器里可以正常显示。为什么? 没发错,4楼的代码,style.display设置为"table-row"或""我都试过了,在chrome里效果一样。现在是点击行首的“加号”小图标后:在chrome里,加号变为减号,同时隐藏的行会展开;在IE浏览器里,加号会变为减号,但隐藏的行却不会展开。这说明JS的onclick=foo()执行了,但在IE里style.display被重置后却未能体现在页面上。 贴类似代码如下,请高手指教。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>展开测试</title></head><body><script language="javascript" type="text/javascript">function setCookie(sName,sValue,expireHours) { var cookieString = sName + "=" + escape(sValue); //;判断是否设置过期时间 if (expireHours>0) { var date = new Date(); date.setTime(date.getTime + expireHours * 3600 * 1000); cookieString = cookieString + "; expire=" + date.toGMTString(); } document.cookie = cookieString;}function getCookie(sName) { var aCookie = document.cookie.split("; "); for (var j=0; j < aCookie.length; j++){ var aCrumb = aCookie[j].split("="); if (escape(sName) == aCrumb[0]) return unescape(aCrumb[1]); } return null;}function foo(idx){ var items = document.getElementsByName(idx); var miniPic = document.getElementById(idx); for (var j=0; j<items.length; j++) { if (getCookie(items[j].getAttribute("id")) == null) //第一次点击 { miniPic.setAttribute('src', 'jian.png'); items[j].setAttribute('style', 'display:'); setCookie(items[j].getAttribute("id"),1); } else //不是第一次点击,已有cookie { if (getCookie(items[j].getAttribute("id")) == 1) { //已展开 miniPic.setAttribute('src', 'jia.png'); items[j].setAttribute('style', 'display:none;'); setCookie(items[j].getAttribute("id"),0); } else { miniPic.setAttribute('src', 'jian.png'); items[j].setAttribute('style', 'display:'); setCookie(items[j].getAttribute("id"),1); } } }}</script> <table> <thead> <tr> <th></th> <th>名称</th> <th>类型</th> <th>数量</th> </tr> </thead> <tfoot> <tr><th></th></tr> </tfoot> <tbody> <tr> <td><a href="javascript:void(0)"><img id="1001" onclick="foo(this.id)" src="jia.png" /></a></td> <td>合并显示名称</td> <td>II</td> <td>数量和</td> </tr> <tr target="s_id" rel="55" id="55" name="1001" style='display:none'> <td></td> <td>子行1</td> <td>II</td> <td>200</td> </tr> <tr target="s_id" rel="56" id="56" name="1001" style='display:none'> <td></td> <td>子行2</td> <td>II</td> <td>300</td> </tr> </tbody> </table></body></html> #6就没有foo函数<volist name="list" id="ov"> <!-- 每条记录是ov,有多个元素,其中child元素是数组,其各元素存储该“合并”行的明细,可展开 --> <tr> <!-- 相同d_code的合并显示行 --> <td><a href="javascript:void(0)"><img id="<{$ov.d_code}>" onclick="foo(this.id)" src="jia.png" /></a></td> <!-- 行首小图标:加号或减号 --> ...<td>... </tr> <volist name="ov.child" id="vv"> <!--上面合并显示行所对应的子行,默认不显示,点击img则显示--> <tr target="s_id" rel="<{$ov.id}>" id="<{$vv.id}>" name="<{$vv.d_code}>" style='display:none;'> ...<td>... </tr> </volist></volist>这种类似的html也没用。。 下面是新建某html的源码,点击可实现展开、折叠。但原样复制粘贴到我系统源码里的index.html就不行,我用的是thinkphp的源码。请问可能是哪方面的问题?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>test</title></head><body><script language="javascript" type="text/javascript">document.getElementsByClassName = function(cl) { var retnode = []; var myclass = new RegExp('\\b'+cl+'\\b'); var elem = this.getElementsByTagName('*'); for (var j = 0; j < elem.length; j++) { var classes = elem[j].className; if (myclass.test(classes)) retnode.push(elem[j]); } return retnode;}function setCookie(sName,sValue) { var cookieString = sName + "=" + escape(sValue); document.cookie = cookieString;}function getCookie(sName) { var aCookie = document.cookie.split("; "); for (var j=0; j < aCookie.length; j++){ var aCrumb = aCookie[j].split("="); if (escape(sName) == aCrumb[0]) return unescape(aCrumb[1]); } return null;}function foo(idx){ var items = document.getElementsByClassName(idx); var miniPic = document.getElementById(idx); for (var j=0; j<items.length; j++) { if (getCookie(items[j].getAttribute("id")) == null) { miniPic.setAttribute('src', 'jian.png'); items[j].setAttribute('style', 'display:'); setCookie(items[j].getAttribute("id"), "1"); } else { if (getCookie(items[j].getAttribute("id")) == 1) { miniPic.setAttribute('src', 'jia.png'); items[j].setAttribute('style', 'display:none;'); setCookie(items[j].getAttribute("id"), "0"); } else if (getCookie(items[j].getAttribute("id")) == 0) { miniPic.setAttribute('src', 'jian.png'); items[j].setAttribute('style', 'display:'); setCookie(items[j].getAttribute("id"), "1"); } else { alert("error"); } } }}</script> <table border="1"> <thead> <tr> <th>A</th> <th>B</th> <th>C</th> <th>D</th> </tr> </thead> <tfoot> <tr><th></th></tr> </tfoot> <tbody> <tr> <td><a href="javascript:void(0)"><img id="123456" onclick="foo(this.id)" src="jia.png" /></a></td> <td>totalName</td> <td>II</td> <td>sum</td> </tr> <tr class="123456" id="123" style='display:none'> <td></td> <td>child1</td> <td>II</td> <td>200</td> </tr> <tr class="123456" id="124" style='display:none'> <td></td> <td>child2</td> <td>II</td> <td>300</td> </tr> </tbody> </table></body></html> 补充一下#13贴的,是在IE里不行,在chrome里没问题。 前述有点乱,汇总一下就是:#13的源码,放在某html里(如D:\1.html),用IE没问题,用chrome则只能展开、不能折叠。如果将源码放到thinkphp源码里,原样粘贴到某文件中(如user\index.html),则在chrome里没问题,在IE里则完全没法用。诡异问题,请教大虾。关于客户端能看到的源码,如上图,在IE里打开,右键->“查看源文件”,只能看到左侧列表的HTML源码,至于<table>则没有对应HTML jquery简单的选择器问题 消息弹出窗??? 求助一段正则表达式 js 如何 实现div 在限定范围内托动 dom遍历问题,在线等,谢了 javascript的函数-2 怎样指向当前对象 用JQuery写鼠标滑过更换CSS 当字符串中包含html标签,怎么避免标签匹配混乱? 100分,谢谢 有谁用过Microsoft的HTC????? 无法设置basics的值:对象为null或未定义 关于一个滑动选项卡的问题,哪位大哥帮忙改一下呀。
<volist name="list" id="ov"> <!-- 每条记录是ov,有多个元素,其中child元素是数组,其各元素存储该“合并”行的明细,可展开 -->
<tr> <!-- 相同d_code的合并显示行 -->
<td><a href="javascript:void(0)"><img id="<{$ov.d_code}>" onclick="foo(this.id)" src="jia.png" /></a></td> <!-- 行首小图标:加号或减号 -->
...<td>...
</tr>
<volist name="ov.child" id="vv"> <!--上面合并显示行所对应的子行,默认不显示,点击img则显示-->
<tr target="s_id" rel="<{$ov.id}>" id="<{$vv.id}>" name="<{$vv.d_code}>" style='display:none;'>
...<td>...
</tr>
</volist>
</volist>
...
function foo(idx)
{
var items = document.getElementsByName(idx);
var miniPic = document.getElementById(idx);
for (var j=0; j<items.length; j++)
{
if (getCookie(items[j].getAttribute("id")) == null) //第一次点击
{
// miniPic.setAttribute('src', '__PUBLIC__/Images/jian.png');
// items[j].setAttribute('style', 'table-row');
miniPic.src = '__PUBLIC__/Images/jian.png';
items[j].style.display = 'table-row';
setCookie(items[j].getAttribute("id"),1);
}
else //不是第一次点击,已有cookie
{
if (getCookie(items[j].getAttribute("id")) == 1) { //已展开
// miniPic.setAttribute('src', '__PUBLIC__/Images/jia.png');
// items[j].setAttribute('style', 'display:none;');
miniPic.src = '__PUBLIC__/Images/jia.png';
items[j].style.display = 'none';
setCookie(items[j].getAttribute("id"),0);
} else {
// miniPic.setAttribute('src', '__PUBLIC__/Images/jian.png');
// items[j].setAttribute('style', 'table-row');
miniPic.src = '__PUBLIC__/Images/jian.png';
items[j].style.display = 'table-row';
setCookie(items[j].getAttribute("id"),1);
}
}
}
}
请帮忙看看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<title>...</title>
...
<link href="/Public/dwz/themes/default/style.css" rel="stylesheet" type="text/css" />
<link href="/Public/dwz/themes/css/core.css" rel="stylesheet" type="text/css" />
<!--[if IE]>
<link href="/Public/dwz/themes/css/ieHack.css" rel="stylesheet" type="text/css" />
<![endif]-->
<script src="/Public/dwz/js/speedup.js" type="text/javascript"></script>
<script src="/Public/dwz/js/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="/Public/dwz/js/jquery.cookie.js" type="text/javascript"></script>
<script src="/Public/dwz/js/jquery.validate.js" type="text/javascript"></script>
<script src="/Public/dwz/js/jquery.bgiframe.js" type="text/javascript"></script>
<script src="/Public/xheditor/xheditor-1.1.9-zh-cn.min.js" type="text/javascript"></script><script src="/Public/dwz/js/dwz.min.js" type="text/javascript"></script>
<script src="/Public/dwz/js/dwz.regional.zh.js" type="text/javascript"></script><script type="text/javascript">
function fleshVerify(){
//重载验证码
$('#verifyImg').attr("src", '/index.php/Public/verify/'+new Date().getTime());
}
function dialogAjaxMenu(json){
dialogAjaxDone(json);
if (json.statusCode == DWZ.statusCode.ok){
$("#sidebar").loadUrl("/index.php/Public/menu");
}
}
function navTabAjaxMenu(json){
navTabAjaxDone(json);
if (json.statusCode == DWZ.statusCode.ok){
$("#sidebar").loadUrl("/index.php/Public/menu");
}
}
$(function(){
DWZ.init("/Public/dwz/dwz.frag.xml", {
loginUrl:"/index.php/Public/login_dialog", loginTitle:"登录", // 弹出登录对话框
// loginUrl:"/index.php/Public/login", //跳到登录页面
statusCode:{ok:1,error:0},
pageInfo:{pageNum:"pageNum", numPerPage:"numPerPage", orderField:"_order", orderDirection:"_sort"}, //【可选】
debug:false, // 调试模式 【true|false】
callback:function(){
initEnv();
$("#themeList").theme({themeBase:"/Public/dwz/themes"});
}
});
});
</script>
</head><body scroll="no">
<div id="layout">
<div id="header">
<div class="headerNav">
<a class="logo" href="/index.php">Logo</a>
<ul class="nav">
<!-- <li><a href="/" target="_blank">前台首页</a></li> -->
<li><a onclick="testConfirmMsg('/index.php/System/ClearCase')" href="javascript:;" >清理缓存</a></li>
<script type="text/javascript">
function testConfirmMsg(url, data){
alertMsg.confirm("您确定要清理缓存文件吗?", {
okCall: function(){
$.post(url, data, DWZ.ajaxDone, "json");
}
});
}
</script>
<li><a href="/index.php/Public/main" target="dialog" width="580" height="360" rel="sysInfo">系统消息</a></li>
<li><a href="/index.php/Public/changepwd/" target="dialog" mask="true">修改密码</a></li>
<li><a href="/index.php/Public/logout/">退出</a></li>
</ul>
<ul class="themeList" id="themeList">
<!-- <li style="color:#B9CCDA">欢迎你,管理员,这是您的第 38 次登陆</li> -->
<li style="color:#B9CCDA">欢迎您,管理员,您是本站的第 39 位访客</li>
<li theme="default"><div class="selected">蓝色</div></li>
</ul>
</div>
</div>
<div id="leftside">
<div id="sidebar_s">
<div class="collapse">
<div class="toggleCollapse"><div></div></div>
</div>
</div>
<!--菜单栏 start -->
<div id="sidebar">
<div class="toggleCollapse"><h2>主菜单</h2><div>收缩</div></div> <div class="accordion" fillSpace="sidebar">
<!----------------------------------------------------------------------------------->
<div class="accordionHeader">
<h2><span>Folder</span>工程管理</h2>
</div>
<div class="accordionContent">
<ul class="tree treeFolder">
<li><a href="/index.php/User/summary" target="navTab" rel="sumUser">首页</a></li>
<li><a href="/index.php/User/index" target="navTab" rel="indexUser">工程列表</a></li>
<li><a href="/index.php/User/add" target="navTab" rel="addUser">添加工程</a></li>
<li><a href="/index.php/User/downexcel" target="downexcelUser" targetType="navTab">导出工程</a></li>
<li><a href="/index.php/User/import" target="navTab" rel="importUser">导入工程</a></li>
<li><a href="/index.php/User/search" target="navTab" rel="searchUser">高级检索</a></li>
<li><a href="/index.php/User/advanced" target="navTab" rel="advancedUser">高级功能</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!--菜单栏 end -->
</div> <div id="container">
<div id="navTab" class="tabsPage">
<div class="tabsPageHeader">
<div class="tabsPageHeaderContent"><!-- 显示左右控制时添加 class="tabsPageHeaderMargin" -->
<ul class="navTab-tab">
<li tabid="main" class="main"><a href="javascript:void(0)"><span><span class="home_icon">我的主页</span></span></a></li>
</ul>
</div>
<div class="tabsLeft">left</div><!-- 禁用只需要添加一个样式 class="tabsLeft tabsLeftDisabled" -->
<div class="tabsRight">right</div><!-- 禁用只需要添加一个样式 class="tabsRight tabsRightDisabled" -->
<div class="tabsMore">more</div>
</div>
<ul class="tabsMoreList">
<li><a href="javascript:void(0)">后台主页</a></li>
</ul>
<div class="navTab-panel tabsPageContent layoutBox">
<!--后台首页右边开始 -->
<div style="background:url(/Public/dwz/themes/default/images/adminindex.jpg) center center no-repeat; height:100%; width:100%; background-color:#102947;"></div>
<!--后台首页右边结束 -->
</div>
</div>
</div>
</div> </div>
<div id="footer">Copyright © 2014 <a href="http://www.ha.chinamobile.com" target="_blank">信阳移动网络部全业务信息化支撑班组</a> 网站技术支持:18790092031</div>
</body>
</html>
没发错,4楼的代码,style.display设置为"table-row"或""我都试过了,在chrome里效果一样。
现在是点击行首的“加号”小图标后:在chrome里,加号变为减号,同时隐藏的行会展开;在IE浏览器里,加号会变为减号,但隐藏的行却不会展开。这说明JS的onclick=foo()执行了,但在IE里style.display被重置后却未能体现在页面上。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>展开测试</title>
</head><body>
<script language="javascript" type="text/javascript">
function setCookie(sName,sValue,expireHours)
{
var cookieString = sName + "=" + escape(sValue);
//;判断是否设置过期时间
if (expireHours>0) {
var date = new Date();
date.setTime(date.getTime + expireHours * 3600 * 1000);
cookieString = cookieString + "; expire=" + date.toGMTString();
}
document.cookie = cookieString;
}function getCookie(sName)
{
var aCookie = document.cookie.split("; ");
for (var j=0; j < aCookie.length; j++){
var aCrumb = aCookie[j].split("=");
if (escape(sName) == aCrumb[0])
return unescape(aCrumb[1]);
}
return null;
}function foo(idx)
{
var items = document.getElementsByName(idx);
var miniPic = document.getElementById(idx);
for (var j=0; j<items.length; j++)
{
if (getCookie(items[j].getAttribute("id")) == null) //第一次点击
{
miniPic.setAttribute('src', 'jian.png');
items[j].setAttribute('style', 'display:');
setCookie(items[j].getAttribute("id"),1);
}
else //不是第一次点击,已有cookie
{
if (getCookie(items[j].getAttribute("id")) == 1) { //已展开
miniPic.setAttribute('src', 'jia.png');
items[j].setAttribute('style', 'display:none;');
setCookie(items[j].getAttribute("id"),0);
} else {
miniPic.setAttribute('src', 'jian.png');
items[j].setAttribute('style', 'display:');
setCookie(items[j].getAttribute("id"),1);
}
}
}
}
</script> <table>
<thead>
<tr>
<th></th>
<th>名称</th>
<th>类型</th>
<th>数量</th>
</tr>
</thead>
<tfoot>
<tr><th></th></tr>
</tfoot>
<tbody>
<tr>
<td><a href="javascript:void(0)"><img id="1001" onclick="foo(this.id)" src="jia.png" /></a></td>
<td>合并显示名称</td>
<td>II</td>
<td>数量和</td>
</tr>
<tr target="s_id" rel="55" id="55" name="1001" style='display:none'>
<td></td>
<td>子行1</td>
<td>II</td>
<td>200</td>
</tr>
<tr target="s_id" rel="56" id="56" name="1001" style='display:none'>
<td></td>
<td>子行2</td>
<td>II</td>
<td>300</td>
</tr>
</tbody>
</table></body>
</html>
<tr> <!-- 相同d_code的合并显示行 -->
<td><a href="javascript:void(0)"><img id="<{$ov.d_code}>" onclick="foo(this.id)" src="jia.png" /></a></td> <!-- 行首小图标:加号或减号 -->
...<td>...
</tr>
<volist name="ov.child" id="vv"> <!--上面合并显示行所对应的子行,默认不显示,点击img则显示-->
<tr target="s_id" rel="<{$ov.id}>" id="<{$vv.id}>" name="<{$vv.d_code}>" style='display:none;'>
...<td>...
</tr>
</volist>
</volist>这种类似的html也没用。。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head><body>
<script language="javascript" type="text/javascript">
document.getElementsByClassName = function(cl)
{
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var j = 0; j < elem.length; j++) {
var classes = elem[j].className;
if (myclass.test(classes)) retnode.push(elem[j]);
}
return retnode;
}
function setCookie(sName,sValue)
{
var cookieString = sName + "=" + escape(sValue);
document.cookie = cookieString;
}function getCookie(sName)
{
var aCookie = document.cookie.split("; ");
for (var j=0; j < aCookie.length; j++){
var aCrumb = aCookie[j].split("=");
if (escape(sName) == aCrumb[0])
return unescape(aCrumb[1]);
}
return null;
}function foo(idx)
{
var items = document.getElementsByClassName(idx);
var miniPic = document.getElementById(idx);
for (var j=0; j<items.length; j++)
{
if (getCookie(items[j].getAttribute("id")) == null)
{
miniPic.setAttribute('src', 'jian.png');
items[j].setAttribute('style', 'display:');
setCookie(items[j].getAttribute("id"), "1");
}
else
{
if (getCookie(items[j].getAttribute("id")) == 1) {
miniPic.setAttribute('src', 'jia.png');
items[j].setAttribute('style', 'display:none;');
setCookie(items[j].getAttribute("id"), "0");
} else if (getCookie(items[j].getAttribute("id")) == 0) {
miniPic.setAttribute('src', 'jian.png');
items[j].setAttribute('style', 'display:');
setCookie(items[j].getAttribute("id"), "1");
} else {
alert("error");
}
}
}
}
</script> <table border="1">
<thead>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
</tr>
</thead>
<tfoot>
<tr><th></th></tr>
</tfoot>
<tbody>
<tr>
<td><a href="javascript:void(0)"><img id="123456" onclick="foo(this.id)" src="jia.png" /></a></td>
<td>totalName</td>
<td>II</td>
<td>sum</td>
</tr>
<tr class="123456" id="123" style='display:none'>
<td></td>
<td>child1</td>
<td>II</td>
<td>200</td>
</tr>
<tr class="123456" id="124" style='display:none'>
<td></td>
<td>child2</td>
<td>II</td>
<td>300</td>
</tr>
</tbody>
</table>
</body>
</html>
诡异问题,请教大虾。关于客户端能看到的源码,如上图,在IE里打开,右键->“查看源文件”,只能看到左侧列表的HTML源码,至于<table>则没有对应HTML