ie6,7 和 ie8 解析后台传过来的相同 html的时候有些不同。导致用prev, next,find,parent等出现找不到对象的问题。
如下
<ul>
<li class='nobd'>产品管理
</li>
<ul>
<li>
<a href='evaluateAction.do?operation=6&src=menu'>产品评论管理</a>
</li>
</ul>
<li class='nobd'>花店管理
</li>
<ul>
<li>
<a href='tblShopQueryAction.do?src=menu'>查看花店</a>
</li>
<li>
<a href='tblShopAction.do?operation=1&type=cancel&src=menu'>新增花店</a>
</li>
</ul>
。。。
。。。
。。。后面很多这种结构数据
</ul>
this.tree.find("ul");得到的就是上面的 最外层的UL 下的 li 和 ul.
现在 需要做的是 ,获得 所有的 最外层UL 下的属性show ='true'的 ul 节点的上一节点(pre,非父节点,例如:<li class='nobd'>产品管理</li>);
参考代码如下:
alert("IE 6"+this.tree.find("ul ul[show='true']").html());
这个可以获得
但是 this.tree.find("ul ul[show='true']")。prev("li")就是null.但是在ie8 或firefox 等 可以出来内容
if($.browser.msie&&($.browser.version == "6.0") || $.browser.msie&&($.browser.version == "7.0")){
$('.nobd').addClass("folder");//也是因为如果按照下面的写法获得不到li,本质上 $('.nodb').就可以获得li
} else {
this.find("ul").prev("li").addClass("folder");
}
if($.browser.msie&&($.browser.version == "6.0") || $.browser.msie&&($.browser.version == "7.0")){
if($(this).find("ul").attr("show")=="true"){
$(this).find("ul").attr("show","false");
}else{
$(this).find("ul").attr("show","true");
}
} else {
if($(this).next("ul").attr("show")=="true"){
$(this).next("ul").attr("show","false");
}else{
$(this).next("ul").attr("show","true");
}
}
/*
* 初始化菜单展开状态,以及分叉节点的样式
*/
if($.browser.msie&&($.browser.version == "6.0") || $.browser.msie&&($.browser.version == "7.0")){
this.tree.find("ul ul").hide(); /* 隐藏所有子级菜单 */
this.tree.find("ul ul").parent().removeClass("open"); /* 移除所有子级菜单父节点的 open 样式 */
this.tree.find("ul ul[show='true']").show(); /* 显示 show 属性为 true 的子级菜单 */
this.tree.find("ul ul[show='true']").parent().addClass("open"); /* 添加 show 属性为 true 的子级菜单父节点的 open 样式 */
} else {
this.tree.find("ul ul").hide(); /* 隐藏所有子级菜单 */
this.tree.find("ul ul").prev("li").removeClass("open"); /* 移除所有子级菜单父节点的 open 样式 */
this.tree.find("ul ul[show='true']").show(); /* 显示 show 属性为 true 的子级菜单 */
this.tree.find("ul ul[show='true']").prev("li").addClass("open"); /* 添加 show 属性为 true 的子级菜单父节点的 open 样式 */
}
分享到:
相关推荐
在本项目中,通过结合Jquery库和两个特定的插件——jquery.easing.js与jquery.vgrid.js,实现了这种布局,并且确保了在包括IE6+以及Firefox在内的多种浏览器中的兼容性。 1. Jquery:Jquery是一个广泛使用的...
2. **IE8特性支持**:由于IE8不支持某些现代Web技术,使用这些版本的EasyUI和jQuery时,可能需要额外的polyfill库来模拟缺失的功能,或者采用特定的代码编写技巧以实现兼容。 3. **CSS和JavaScript调整**:由于IE8...
5. **代码优化**:避免使用IE8不支持的JavaScript语法,比如`Array.prototype.forEach`、`Function.prototype.bind`等,转而使用传统循环或`for`语句。同时,注意IE8不支持`getComputedStyle`,可以使用`...
jquery.validate 兼容IE6/IE7/IE8
实现弹出网页遮罩层,可兼容IE6/IE7/IE+++等; 缩放浏览器时,内容狂始终居中; 有点小bug,在IE6下,遮罩层颜色没透明,屎黑色,等我有空完善下。
在这个"JQuery生成静态柱状图实例"中,我们探讨的是如何使用JQuery来创建兼容多种浏览器(包括IE6、7、8以及Firefox)的柱状图表。 首先,柱状图是一种常见的数据可视化工具,它用垂直或水平的条形长度表示数值。在...
在网页设计领域,Internet Explorer(简称IE)的6、7、8版本曾是开发者们面临兼容性问题的主要挑战。这三款浏览器虽然在当时占据了一定的市场份额,但它们对CSS(层叠样式表)的支持程度并不理想,导致开发者需要...
然而,由于IE6的性能限制和对CSS、JavaScript的兼容性问题,可能需要特别注意一些CSS样式和JavaScript代码的编写,避免使用IE6不支持的特性。例如,使用传统CSS选择器而不是CSS3新特性,避免使用某些JavaScript的...
本资源“基于jquery_二维码生成和打印_兼容IE6-IE8_解决汉字乱码问题.zip”提供了一个解决方案,它使得在老旧的IE6-IE8浏览器上也能生成并打印包含汉字的二维码,这在很多情况下是非常实用的,因为这些老版本的IE...
"Jquery对话栏 兼容 精简jQuery代码兼容ie6+主流浏览器"这个主题涉及到的关键知识点包括jQuery对话框的实现、浏览器兼容性处理以及代码优化。 首先,jQuery对话框(Dialog)是一种交互式组件,它允许用户在不离开...
**jQuery图片轮播兼容IE浏览器** 在Web开发中,图片轮播是一种常见的功能,用于展示一组图片或内容,常用于网站的首页或者产品展示区。jQuery作为一种轻量级的JavaScript库,提供了丰富的API和插件,使得实现图片...
6. **禁用某些组件**:某些Bootstrap组件在IE8下可能无法正常工作,例如Glyphicons图标字体,因为IE8不支持@font-face。在这种情况下,可能需要寻找替代方案或者禁用这些组件。 7. **优化JavaScript**:Bootstrap的...
确保jQuery的版本适用于IE8及以上,因为jQuery 1.x系列对IE6/7有较好的支持,而2.x及更高版本不再支持这些旧版浏览器。 ```html <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 您的密钥">...
本文将深入探讨一个基于jQuery的具有搜索功能的下拉框组件,该组件兼容广泛的Internet Explorer浏览器,包括IE5到IE10,但不支持较新的Edge浏览器。 首先,让我们了解下拉框(Dropdown)的基本概念。在网页设计中,...
总结来说,jQuery提供了一定的手段来处理IE6的兼容问题。然而,随着技术发展,完全弃用旧版浏览器的策略也越来越常见。开发者应当考虑到用户的多样性,同时也要关注网站的维护成本和整体体验。合理使用jQuery和相关...
"IE兼容IE6,IE7,IE8,IE9,IE10 js文件"的标题和描述提示我们,这个压缩包可能包含了一系列专门用于解决这些版本之间兼容性问题的JavaScript脚本。 JavaScript是一种广泛用于网页和网络应用的编程语言,它的主要功能...
本知识点主要围绕验证码在IE7和IE8中的兼容性问题展开。 首先,验证码的基本原理是生成一段随机的、难以由计算机程序识别的字符或数字序列,用户需要在输入框中正确输入这段字符才能完成验证。通常,验证码会添加...
6. **JavaScript兼容性编码**:避免使用IE8不支持的语法,如箭头函数、模板字符串等。 7. **测试和调试**:使用IE8模拟器或者真实环境进行测试,确保所有功能正常运行,及时调整代码。 通过以上方法,应该可以解决...
首先,我们需要理解为什么IE6/7/8不支持HTML5。这主要是因为它们的内核(Trident)在HTML5标准推出时并未进行相应的更新。为了解决这个问题,我们可以采用以下策略: 1. **使用HTML5shiv**: HTML5shiv是一个...
兼容IE8的jQuery宽屏幻灯片轮播插件.rar 兼容IE8的jQuery宽屏幻灯片轮播插件.rar 兼容IE8的jQuery宽屏幻灯片轮播插件.rar 兼容IE8的jQuery宽屏幻灯片轮播插件.rar 兼容IE8的jQuery宽屏幻灯片轮播插件.rar 兼容IE8的...