Jquery出错:Uncaught RangeError: Maximum call stack size exceeded
<ul>
<li style="display:none">第1个li</li>
<li>第2个li</li>
<li style="display:none">第3个li</li>
<li>第4个li</li>
<li style="display:none">第5个li</li>
<li>第6个li</li>
<li>第7个li</li>
<li>第8个li</li>
<a href=# onclick="onclick()">更多</a>
</ul>
<script type="text/javascript">
function onclick(){
var more = $("a");
if(more.html()=="更多"){
$("li:hidden").css(display,'block');
more.html("简化");
return;
}
if(more.html()=="简化"){
$("li[display='block']").css(display,'none');
more.html("更多");
return;
}
}
</script>
</body>
代码如上,chorme浏览器中运行出错:Uncaught RangeError: Maximum call stack size exceeded 展开
不太懂你这个函数为什么会报错,我copy你的本地调试,什么错误提示都没有
但是我要提下:
1、你的html写法不标准,a标签不能直接嵌套在ul里头的
2、可能是onclick是关键字,直接写函数有误,我本地是点击直接没反应,alert也没反应
3、属性选择器有误li[display='block'],这个选择不到,li[style*='block']应该这么写才对
经修改方案如下:
<script type="text/javascript">
function onc(){
//alert($("#a").text())
var more = $("a");
if(more.html()=="更多"){
$("li:hidden").css('display','block');
more.html("简化");
return;
}
if(more.html()=="简化"){
$("li[style*='block']").css('display','none');
more.html("更多");
return;
}
}
</script>
<ul>
<li style="display:none">第1个li</li>
<li>第2个li</li>
<li style="display:none">第3个li</li>
<li>第4个li</li>
<li style="display:none">第5个li</li>
<li>第6个li</li>
<li>第7个li</li>
<li>第8个li</li>
</ul>
<a href="#" id="a" onclick="onc()">更多</a>
效果:
Uncaught RangeError: Maximum call stack size exceeded
意思为:堆栈溢出
发生原因:
递归次数过多,没有正确的退出递归造成堆栈溢出
解决方法:
减少递归次数,使用其他方法解决问题
恰当的时机返回,避免由于返回条件不正确导致的堆栈溢出
但是我要提下:
1、你的html写法不标准,a标签不能直接嵌套在ul里头的
2、可能是onclick是关键字,直接写函数有误,我本地是点击直接没反应,alert也没反应
3、属性选择器有误li[display='block'],这个选择不到,li[style*='block']应该这么写才对
经修改方案如下:
<script type="text/javascript">
function onc(){
//alert($("#a").text())
var more = $("a");
if(more.html()=="更多"){
$("li:hidden").css('display','block');
more.html("简化");
return;
}
if(more.html()=="简化"){
$("li[style*='block']").css('display','none');
more.html("更多");
return;
}
}
</script>
<ul>
<li style="display:none">第1个li</li>
<li>第2个li</li>
<li style="display:none">第3个li</li>
<li>第4个li</li>
<li style="display:none">第5个li</li>
<li>第6个li</li>
<li>第7个li</li>
<li>第8个li</li>
</ul>
<a href="#" id="a" onclick="onc()">更多</a>