为了账号安全,请及时绑定邮箱和手机立即绑定

为啥这样不能简化呢?

<script>

             $("li:gt(4)").hide();

             

             $("a:contains(更多)").click(function(){

                $("li:gt(4)").show();

                $(this).text("简化");

             });

             

             $("a:contains(简化)").click(function(){

                $("li:gt(4)").hide();

                $(this).text("更多");

             });

        </script>

可以正常的展开更多,但是不能简化。。。

正在回答

3 回答

页面加载一次全部都加载,$("a:contains(更多)")指向元素a没问题,可以触发事件,但是后面并没有找到对象;

所以不会触发事件,如果一定这么些,可以把这段代码放在一个setInterval中

0 回复 有任何疑惑可以回复我~
#1

花不谢

我刚刚试了下,后面也是找到元素的。因为我照下面方法写,每次弹出的都是那个“更多点击的提示框。”
2016-05-13 回复 有任何疑惑可以回复我~
#2

花不谢 回复 花不谢

$("li:gt(4)").hide(); $("a:contains('更多')").click(function(){ $("li:gt(4)").show(); alert("更多点击") $("a").html('简化'); }); $("a:contains('简化')").click(function(){ $("li:gt(4)").hide(); alert("简化点击") $("a").html('更多'); });
2016-05-13 回复 有任何疑惑可以回复我~
#3

Y3 提问者

非常感谢!
2016-07-18 回复 有任何疑惑可以回复我~

我刚刚试了很久,发现contains会有问题,你自己写个alert试下,每个点击里面就加个alert。你会发现,每次点击那个a标签内容,弹出的都是更多的那个,也就是说后面虽然把那个a标签内容改为了“简化”,但是它其实contains到的还是更多。具体原因我也不晓得。我是试出来的。

0 回复 有任何疑惑可以回复我~

<script type="text/javascript">

    $(function()

{

$("li").hide();

$("li:lt(5)").show();

$("a").click(function()

{

var a=$("a");

if(a.html()=="更多")

{

$("li").show();

a.html("简化");

}

else

{

$("li").hide();

$("li:lt(5)").show();

a.html("更多");

}}

);

});

</script>


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

加入课程学习,有效提高前端开发速度

进入课程

为啥这样不能简化呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信