?
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 样式 */
}