哪位大侠能帮介绍一下每一句语句的意思,我初学js ,搞不懂是什么意思?不好意思金币就这么多了。
functionselectTag(showContent,selfObj){//操作标签vartag=document.getElementById("tags").g...
function selectTag(showContent,selfObj){
// 操作标签
var tag = document.getElementById("tags").getElementsByTagName("li");
var taglength = tag.length;
for(i=0; i<taglength; i++){
tag[i].className = "";
}
selfObj.parentNode.className = "selectTag";
// 操作内容
for(i=0; j=document.getElementById("tagContent"+i); i++){
j.style.display = "none";
}
document.getElementById(showContent).style.display = "block";
} 展开
// 操作标签
var tag = document.getElementById("tags").getElementsByTagName("li");
var taglength = tag.length;
for(i=0; i<taglength; i++){
tag[i].className = "";
}
selfObj.parentNode.className = "selectTag";
// 操作内容
for(i=0; j=document.getElementById("tagContent"+i); i++){
j.style.display = "none";
}
document.getElementById(showContent).style.display = "block";
} 展开
2个回答
展开全部
粗略看了下,因为你没有给html代码,所以只能根据意思判断传入的值的用处。
整个函数做的功能就是,点击某一个li标签,显示这个标签的子菜单,并且同时隐藏其他同级标签显示的子菜单。
根据上述判断,这个函数应该是一个单击事件触发的
function selectTag(showContent,selfObj){
// 操作标签
//获取id=tags的标签中的所有li标签,tag就是存放li标签的数组
var tag = document.getElementById("tags").getElementsByTagName("li");
//取得tag数组长度,即可知一共多少个li
var taglength = tag.length;
for(i=0; i<taglength; i++){
//将这些li标签的样式类都清空
tag[i].className = "";
}
//selfObj是传入的参数,应该也是一个标签,这一句为这个标签的父标签添加样式类selectTag
selfObj.parentNode.className = "selectTag";
// 操作内容
//这个for循环功能应该是将其余同级的标签子菜单隐藏,但是循环条件有问题,for循环()中的三个条件,中间一个应该是限定循环上限,而 j=document.getElementById("tagContent"+i)是获取标签,我估计应该是for循环{}内的语句
for(i=0; j=document.getElementById("tagContent"+i); i++){
j.style.display = "none";
}
//showContent也是传入的参数,应该是某个id的内容,这里将id是这个内容的块状标签显示
document.getElementById(showContent).style.display = "block";
}
整个函数做的功能就是,点击某一个li标签,显示这个标签的子菜单,并且同时隐藏其他同级标签显示的子菜单。
根据上述判断,这个函数应该是一个单击事件触发的
function selectTag(showContent,selfObj){
// 操作标签
//获取id=tags的标签中的所有li标签,tag就是存放li标签的数组
var tag = document.getElementById("tags").getElementsByTagName("li");
//取得tag数组长度,即可知一共多少个li
var taglength = tag.length;
for(i=0; i<taglength; i++){
//将这些li标签的样式类都清空
tag[i].className = "";
}
//selfObj是传入的参数,应该也是一个标签,这一句为这个标签的父标签添加样式类selectTag
selfObj.parentNode.className = "selectTag";
// 操作内容
//这个for循环功能应该是将其余同级的标签子菜单隐藏,但是循环条件有问题,for循环()中的三个条件,中间一个应该是限定循环上限,而 j=document.getElementById("tagContent"+i)是获取标签,我估计应该是for循环{}内的语句
for(i=0; j=document.getElementById("tagContent"+i); i++){
j.style.display = "none";
}
//showContent也是传入的参数,应该是某个id的内容,这里将id是这个内容的块状标签显示
document.getElementById(showContent).style.display = "block";
}
追问
麻烦你能再帮我解释一下 for(i=0; j=document.getElementById("tagContent"+i); i++){
j.style.display = "none";
}
document.getElementById(showContent).style.display = "block";这两句之间存在着啥关系吗?还有是啥叫传入的参数,它有啥作用?
追答
看这个函数的第一句function selectTag(showContent,selfObj),后面跟的{}里是具体执行的代码,而在这句的()里的showContent和selfObj是形参,具体有几个是根据需求添加的,这里的话就是需要html调用函数的时候传入具体的值。
形参和实参的概念,你如果还不是很理解可以自己去百度一下,网上讲解是很多的。
因为不清楚你的html代码,我只能根据这俩参数的文字来猜测,showContent应该传入的是需要显示出来的标签的id,而selfObj则应该是触发这个函数的标签。
至于你说的这两句的关系,因为没有HTML代码,也只是推测,这个函数做的可能是点击某个菜单项,显示这个菜单项的下拉列表(就是这两句代码中后一句的作用),同时让这个菜单项同一级中已经显示下拉列表的菜单项下拉列表隐藏(这就是前一句的作用)。
个人推测这句for(i=0; j=document.getElementById("tagContent"+i); i++){
j.style.display = "none";
}
应该是这样的,否则这语句本身就通不过编译,没法执行
for(i=0;i<taglength; i++){
var j=document.getElementById("tagContent"+i);
j.style.display = "none";
}
展开全部
根据命名的字面意思 我猜测了一下(意淫了一把,强.奸了你的代码):
//先设置tags内所有标签未选中,简单循环赋值而已(第一条回答解释的很清楚)
var tag = document.getElementById("tags").getElementsByTagName("li");
var taglength = tag.length;
for(i=0; i<taglength; i++){
tag[i].className = "";
}
//设当前这个标签为选中状态。
selfObj.parentNode.className = "selectTag";
//设置所有标签对应的显示区域为隐藏状态,这样区域ID很奇葩tagContent0-n 可以for循环
for(i=0; j=document.getElementById("tagContent"+i); i++){//这里我来解释一下,从0-n过程中,如果j不存在就退出循环,就是"tagContent"+n没有这个区域。
j.style.display = "none";
}
//设当前这个标签代表区域为显示状态。
document.getElementById(showContent).style.display = "block";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询