想要写一个类似网站后台下拉隐藏的效果,为什么封装好的JS没用呢?
我把代码上上来,麻烦大神帮忙看看
HTML代码:
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:onClick=show('run') "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
JS代码:
function show(id)
{
if(document.getElementById(id).style.display='none')
{
document.getElementById(id).style.display='block';
}
else{
document.getElementById(id).style.display='none'
}
}
一运行就报错,报错提示是:
VM106:1 Uncaught ReferenceError: show is not defined
at <anonymous>:1:9
(anonymous) @ VM106:1
麻烦大神帮忙看看哪里有问题~~
21 个解决方案
#1
貌似是你的冲突了 一个none隐藏 一个block显示
#2
或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
#3
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run')"><li>商品管理</li></a>
<dd class="run">-订单管理</dd>
<dd class="run">-在售商品管理</dd>
<dd class="run">-添加商品</dd>
<dd class="run">-待售商品管理</dd>
<dd class="run">-属性设置</dd>
<dd class="run">-商品详情模板</dd>
<dd class="run">-商品回收站</dd>
<dd class="run">-商品评价管理</dd>
<dd class="run">-图片管理</dd>
<dd class="run">-序列号规则管理</dd>
</ul>
<script type="text/javascript">
function show(className){
var doms = document.querySelectorAll("."+className);
for (var i = 0; i < doms.length; i++) {
if(doms[i].style.display=='none'){
doms[i].style.display='block';
} else {
doms[i].style.display='none';
}
}
}
</script>
#4
还是存在同样的问题呢。报错提示一样
#5
没有用到jquery耶。我是想隐藏所有ID=run的。不可以这么写吗
#6
还有一个问题,我想问一下,你代码中的querySelectorAll是什么意思啊,我目前还没学到这里
#7
报错提示一样。这可能是js文件没有正确加载
#8
没有用到jquery耶。我是想隐藏所有ID=run的。不可以这么写吗 或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
元素的id不能重名,对同名的id用document.getElementById()只能获取第一个
#9
还有一个问题,我想问一下,你代码中的querySelectorAll是什么意思啊,我目前还没学到这里
#10
show方法把参数去掉吧
#11
<a href="javascript:show('run');"><li>商品管理</li></a>
是不是掉了个分号;
或者是换个写法
<a href="javascript:void(0);" onclick="show('run')"><li>商品管理</li></a>
是不是掉了个分号;
或者是换个写法
<a href="javascript:void(0);" onclick="show('run')"><li>商品管理</li></a>
#12
<!DOCTYPE html>
<html>
<head></head>
<body>
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:onClick=show() "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script type="text/javascript">
function show() {
if(document.getElementById("run").style.display=='none') {
document.getElementById("run").style.display='block';
}
else{
document.getElementById("run").style.display='none'
}
}
</script>
</body>
</html>
<html>
<head></head>
<body>
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:onClick=show() "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script type="text/javascript">
function show() {
if(document.getElementById("run").style.display=='none') {
document.getElementById("run").style.display='block';
}
else{
document.getElementById("run").style.display='none'
}
}
</script>
</body>
</html>
#13
没有用到jquery耶。我是想隐藏所有ID=run的。不可以这么写吗 或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
元素的id不能重名,对同名的id用document.getElementById()只能获取第一个
#14
function show(id){
var els = document.getElementsByTagName('*');
for(var i=0;i<els.length;i++){
if (els[i].id==id){
els[i].style.display = els[i].style.display == 'none'?'block':'none';
}
}
}
#15
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run') "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script>
function show(id){
var els = document.getElementsByTagName('*');
for(var i=0;i<els.length;i++){
if (els[i].id==id){
els[i].style.display = els[i].style.display == 'none'?'block':'none';
}
}
}
</script>
a 的 href 后跟伪协议时不要加事件比如 href="javascript:show('run')",不能写作href="javascript:onClick=show('run') "
另外,id最好保持每个ID在页面内具有唯一性
最后,getElementById没有对应的数组获取方式即getElementsById,查看教程,你可以使用 getElementsByTagName获取标签然后自行判断ID
#16
同名的id➕s获取呢 没有用到jquery耶。我是想隐藏所有ID=run的。不可以这么写吗 或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
元素的id不能重名,对同名的id用document.getElementById()只能获取第一个
没有getElementsById方法
但是可以用document.querySelectorAll("#run")获取多个同名id
不过按规定同一页面内id最好是唯一的,要同时获取多个元素还是用class比较好。
#17
同名的id➕s获取呢 没有用到jquery耶。我是想隐藏所有ID=run的。不可以这么写吗 或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
元素的id不能重名,对同名的id用document.getElementById()只能获取第一个
没有getElementsById方法
但是可以用document.querySelectorAll("#run")获取多个同名id
不过按规定同一页面内id最好是唯一的,要同时获取多个元素还是用class比较好。
#18
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run') "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script>
function show(id){
var els = document.getElementsByTagName('*');
for(var i=0;i<els.length;i++){
if (els[i].id==id){
els[i].style.display = els[i].style.display == 'none'?'block':'none';
}
}
}
</script>
a 的 href 后跟伪协议时不要加事件比如 href="javascript:show('run')",不能写作href="javascript:onClick=show('run') "
另外,id最好保持每个ID在页面内具有唯一性
最后,getElementById没有对应的数组获取方式即getElementsById,查看教程,你可以使用 getElementsByTagName获取标签然后自行判断ID
#19
还是报一样的错呢~ <ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run') "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script>
function show(id){
var els = document.getElementsByTagName('*');
for(var i=0;i<els.length;i++){
if (els[i].id==id){
els[i].style.display = els[i].style.display == 'none'?'block':'none';
}
}
}
</script>
a 的 href 后跟伪协议时不要加事件比如 href="javascript:show('run')",不能写作href="javascript:onClick=show('run') "
另外,id最好保持每个ID在页面内具有唯一性
最后,getElementById没有对应的数组获取方式即getElementsById,查看教程,你可以使用 getElementsByTagName获取标签然后自行判断ID
js文件没有正确加载
#20
还是报一样的错呢~ <ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run') "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script>
function show(id){
var els = document.getElementsByTagName('*');
for(var i=0;i<els.length;i++){
if (els[i].id==id){
els[i].style.display = els[i].style.display == 'none'?'block':'none';
}
}
}
</script>
a 的 href 后跟伪协议时不要加事件比如 href="javascript:show('run')",不能写作href="javascript:onClick=show('run') "
另外,id最好保持每个ID在页面内具有唯一性
最后,getElementById没有对应的数组获取方式即getElementsById,查看教程,你可以使用 getElementsByTagName获取标签然后自行判断ID
js文件没有正确加载
#21
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('aa')"><li>商品管理</li></a>
<div id="aa" style="display:none">
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</div>
</ul>
</body>
<script type="text/javascript">
var a=true;
function show(id){
if(a){
document.getElementById(id).style.display='block'
a=false;
}
else{
document.getElementById(id).style.display='none'
a=true;
}
}
</script>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('aa')"><li>商品管理</li></a>
<div id="aa" style="display:none">
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</div>
</ul>
</body>
<script type="text/javascript">
var a=true;
function show(id){
if(a){
document.getElementById(id).style.display='block'
a=false;
}
else{
document.getElementById(id).style.display='none'
a=true;
}
}
</script>
</html>
#1
貌似是你的冲突了 一个none隐藏 一个block显示
#2
或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
#3
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run')"><li>商品管理</li></a>
<dd class="run">-订单管理</dd>
<dd class="run">-在售商品管理</dd>
<dd class="run">-添加商品</dd>
<dd class="run">-待售商品管理</dd>
<dd class="run">-属性设置</dd>
<dd class="run">-商品详情模板</dd>
<dd class="run">-商品回收站</dd>
<dd class="run">-商品评价管理</dd>
<dd class="run">-图片管理</dd>
<dd class="run">-序列号规则管理</dd>
</ul>
<script type="text/javascript">
function show(className){
var doms = document.querySelectorAll("."+className);
for (var i = 0; i < doms.length; i++) {
if(doms[i].style.display=='none'){
doms[i].style.display='block';
} else {
doms[i].style.display='none';
}
}
}
</script>
#4
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run')"><li>商品管理</li></a>
<dd class="run">-订单管理</dd>
<dd class="run">-在售商品管理</dd>
<dd class="run">-添加商品</dd>
<dd class="run">-待售商品管理</dd>
<dd class="run">-属性设置</dd>
<dd class="run">-商品详情模板</dd>
<dd class="run">-商品回收站</dd>
<dd class="run">-商品评价管理</dd>
<dd class="run">-图片管理</dd>
<dd class="run">-序列号规则管理</dd>
</ul>
<script type="text/javascript">
function show(className){
var doms = document.querySelectorAll("."+className);
for (var i = 0; i < doms.length; i++) {
if(doms[i].style.display=='none'){
doms[i].style.display='block';
} else {
doms[i].style.display='none';
}
}
}
</script>
#5
或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
#6
还有一个问题,我想问一下,你代码中的querySelectorAll是什么意思啊,我目前还没学到这里
#7
还是存在同样的问题呢。报错提示一样
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run')"><li>商品管理</li></a>
<dd class="run">-订单管理</dd>
<dd class="run">-在售商品管理</dd>
<dd class="run">-添加商品</dd>
<dd class="run">-待售商品管理</dd>
<dd class="run">-属性设置</dd>
<dd class="run">-商品详情模板</dd>
<dd class="run">-商品回收站</dd>
<dd class="run">-商品评价管理</dd>
<dd class="run">-图片管理</dd>
<dd class="run">-序列号规则管理</dd>
</ul>
<script type="text/javascript">
function show(className){
var doms = document.querySelectorAll("."+className);
for (var i = 0; i < doms.length; i++) {
if(doms[i].style.display=='none'){
doms[i].style.display='block';
} else {
doms[i].style.display='none';
}
}
}
</script>
报错提示一样。这可能是js文件没有正确加载
#8
没有用到jquery耶。我是想隐藏所有ID=run的。不可以这么写吗 或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
元素的id不能重名,对同名的id用document.getElementById()只能获取第一个
#9
还有一个问题,我想问一下,你代码中的querySelectorAll是什么意思啊,我目前还没学到这里
#10
show方法把参数去掉吧
#11
<a href="javascript:show('run');"><li>商品管理</li></a>
是不是掉了个分号;
或者是换个写法
<a href="javascript:void(0);" onclick="show('run')"><li>商品管理</li></a>
是不是掉了个分号;
或者是换个写法
<a href="javascript:void(0);" onclick="show('run')"><li>商品管理</li></a>
#12
<!DOCTYPE html>
<html>
<head></head>
<body>
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:onClick=show() "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script type="text/javascript">
function show() {
if(document.getElementById("run").style.display=='none') {
document.getElementById("run").style.display='block';
}
else{
document.getElementById("run").style.display='none'
}
}
</script>
</body>
</html>
<html>
<head></head>
<body>
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:onClick=show() "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script type="text/javascript">
function show() {
if(document.getElementById("run").style.display=='none') {
document.getElementById("run").style.display='block';
}
else{
document.getElementById("run").style.display='none'
}
}
</script>
</body>
</html>
#13
没有用到jquery耶。我是想隐藏所有ID=run的。不可以这么写吗 或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
元素的id不能重名,对同名的id用document.getElementById()只能获取第一个
#14
function show(id){
var els = document.getElementsByTagName('*');
for(var i=0;i<els.length;i++){
if (els[i].id==id){
els[i].style.display = els[i].style.display == 'none'?'block':'none';
}
}
}
#15
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run') "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script>
function show(id){
var els = document.getElementsByTagName('*');
for(var i=0;i<els.length;i++){
if (els[i].id==id){
els[i].style.display = els[i].style.display == 'none'?'block':'none';
}
}
}
</script>
a 的 href 后跟伪协议时不要加事件比如 href="javascript:show('run')",不能写作href="javascript:onClick=show('run') "
另外,id最好保持每个ID在页面内具有唯一性
最后,getElementById没有对应的数组获取方式即getElementsById,查看教程,你可以使用 getElementsByTagName获取标签然后自行判断ID
#16
同名的id➕s获取呢 没有用到jquery耶。我是想隐藏所有ID=run的。不可以这么写吗 或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
元素的id不能重名,对同名的id用document.getElementById()只能获取第一个
没有getElementsById方法
但是可以用document.querySelectorAll("#run")获取多个同名id
不过按规定同一页面内id最好是唯一的,要同时获取多个元素还是用class比较好。
#17
同名的id➕s获取呢 没有用到jquery耶。我是想隐藏所有ID=run的。不可以这么写吗 或者是你的jquery应用顺序有问题,你可以把jquery的js应用放在第一个,而且你传的id有问题 没有说明到底是哪一个id
元素的id不能重名,对同名的id用document.getElementById()只能获取第一个
没有getElementsById方法
但是可以用document.querySelectorAll("#run")获取多个同名id
不过按规定同一页面内id最好是唯一的,要同时获取多个元素还是用class比较好。
#18
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run') "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script>
function show(id){
var els = document.getElementsByTagName('*');
for(var i=0;i<els.length;i++){
if (els[i].id==id){
els[i].style.display = els[i].style.display == 'none'?'block':'none';
}
}
}
</script>
a 的 href 后跟伪协议时不要加事件比如 href="javascript:show('run')",不能写作href="javascript:onClick=show('run') "
另外,id最好保持每个ID在页面内具有唯一性
最后,getElementById没有对应的数组获取方式即getElementsById,查看教程,你可以使用 getElementsByTagName获取标签然后自行判断ID
#19
还是报一样的错呢~ <ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run') "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script>
function show(id){
var els = document.getElementsByTagName('*');
for(var i=0;i<els.length;i++){
if (els[i].id==id){
els[i].style.display = els[i].style.display == 'none'?'block':'none';
}
}
}
</script>
a 的 href 后跟伪协议时不要加事件比如 href="javascript:show('run')",不能写作href="javascript:onClick=show('run') "
另外,id最好保持每个ID在页面内具有唯一性
最后,getElementById没有对应的数组获取方式即getElementsById,查看教程,你可以使用 getElementsByTagName获取标签然后自行判断ID
js文件没有正确加载
#20
还是报一样的错呢~ <ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('run') "><li>商品管理</li></a>
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</ul>
<script>
function show(id){
var els = document.getElementsByTagName('*');
for(var i=0;i<els.length;i++){
if (els[i].id==id){
els[i].style.display = els[i].style.display == 'none'?'block':'none';
}
}
}
</script>
a 的 href 后跟伪协议时不要加事件比如 href="javascript:show('run')",不能写作href="javascript:onClick=show('run') "
另外,id最好保持每个ID在页面内具有唯一性
最后,getElementById没有对应的数组获取方式即getElementsById,查看教程,你可以使用 getElementsByTagName获取标签然后自行判断ID
js文件没有正确加载
#21
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('aa')"><li>商品管理</li></a>
<div id="aa" style="display:none">
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</div>
</ul>
</body>
<script type="text/javascript">
var a=true;
function show(id){
if(a){
document.getElementById(id).style.display='block'
a=false;
}
else{
document.getElementById(id).style.display='none'
a=true;
}
}
</script>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<ul id="list">
<li>首页</li>
<li>我的店铺</li>
<a href="javascript:show('aa')"><li>商品管理</li></a>
<div id="aa" style="display:none">
<dd id="run">-订单管理</dd>
<dd id="run">-在售商品管理</dd>
<dd id="run">-添加商品</dd>
<dd id="run">-待售商品管理</dd>
<dd id="run">-属性设置</dd>
<dd id="run">-商品详情模板</dd>
<dd id="run">-商品回收站</dd>
<dd id="run">-商品评价管理</dd>
<dd id="run">-图片管理</dd>
<dd id="run">-序列号规则管理</dd>
</div>
</ul>
</body>
<script type="text/javascript">
var a=true;
function show(id){
if(a){
document.getElementById(id).style.display='block'
a=false;
}
else{
document.getElementById(id).style.display='none'
a=true;
}
}
</script>
</html>