当前位置:首页 > 问答大全 > 哪位高手帮忙翻译一下这个JS代码,感激不尽!

哪位高手帮忙翻译一下这个JS代码,感激不尽!

被浏览: 0次 2023年10月24日 06:19
热门回答(2个)
游客1

这个应该粗橘是控制一个子菜单显示和隐藏的代码
sitemap通过ID获取到含有很多ul li的一个容器
if(sitemap) 判断如果这个存在,就执行里面的代码块
this.listItem 是一个函数,他接收一个参数(li) 其中的li是一个dom对象
var items = sitemap.getElementsByTagName("li");这句话获取到sitemap变量里所有的li对象,

通过遍历执行listItem(li)这个方法
再说listItem(li)方法
如果传入的参数li对象有ul对象,说明他还有子菜单,这时候他就会展开子菜单
展开的同凳凳州时创建了一个dom对象span,然枣蔽后加入了一些class,
span.onclick 同时绑定了一些时间
这里面的this对象指的的Window对象

游客2

this.sitemapstyler = function(){   //创建一个方法
var sitemap = document.getElementById("sitemap")  //找到id为sitemap的元素


if(sitemap){

this.listItem = function(li){  //创建另一个方法,该方法有个带源参数li

if(li.getElementsByTagName("ul").length > 0){  //如果li中有名字叫ul的元素

var ul = li.getElementsByTagName("ul")[0];  //找到li中第一个名字叫ul的元素

ul.style.display = "扰好block";  //设置li中第一个名字叫ul的元素隐藏

var span = document.createElement("span");  //创建一个span元素(span标签)
span.className = "collapsed";  //为span元素添加一个样式,名叫collapsed

span.onclick = function(){   //为span元素绑定一个点击事件

ul.style.display = (ul.style.display == "none") ? "block" : "none";  //如果li中第一个名字叫ul的元素是隐藏就设置为显示,反正隐藏

this.className = (ul.style.display == "none") ? "collapsed" : "expanded";

//如果li中第一个名字叫ul的元素是隐藏就设置span的样式为collapsed,反正expanded

};
li.appendChild(span);  //向li中添加span元素,这时span才会显示在页面上

};

};

var items = sitemap.getElementsByTagName("li");
for(var i=0;i listItem(items[i]);
};

};
};
window.onload = sitemapstyler;  //页面加载时执蠢李态行sitemapstyler方法