jquery 切换时更改引导程序按钮文本

yxyvkwin  于 2022-12-03  发布在  jQuery
关注(0)|答案(3)|浏览(119)

我目前有一个用Bootstrap构建的折叠按钮,我正在尝试将文本从“Read more”转换为“Read less”。我一直在尝试jQuery,但我就是不能让它工作。

<a data-toggle='collapse' href='#collapseExample' id='#collapseExample' class='text-center btn btn-default'>Read More</a>
    <div class='collapse' id='collapseExample'>
        <p class='readmore'>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
    </div>

$(document).ready(function(){
 $('#collapseExample').on('click', function () {
  var text=$('#collapseExample').val();
  if(text==='Read more'){
    $(this).text('Read less');
  } else{
    $(this).text('Read more');
 }
});
})
v1l68za4

v1l68za41#

1.不要在无效的html页面中使用相同的id两次。
1.不要用#作为id的开头,在jquery中使用时会导致很多问题。
1.字符串必须完全匹配,这样Read more就无法工作,您需要使用Read More
1.不要使用val(),而应使用text()html()

正在工作的片段

第一个

wsxa1bj1

wsxa1bj12#

您可以设置一个名为toggled的变量,其布尔值为true/false。然后您可以检查链接是否被单击。例如:
jQuery代码:

$(function() {
    var btn = $("[href='#collapseExample']");
    var toggled = false;
    btn.on("click", function() {
        if(!toggled)
        {
          toggled = true;
          btn.text("Read less");
        } else {
          toggled = false;
          btn.text("Read more");
        }
    });
});

和链接:

<a data-toggle='collapse' href='#collapseExample' id='#collapseExample' class='text-center btn btn-default'>Read More</a>

示例:https://jsfiddle.net/8wmbzn28/

68de4m5k

68de4m5k3#

尝试使用text()而不是val()

$(document).ready(function(){
    $('#collapseExample').on('click', function () {
        var text = $('#collapseExample').text();
        if (text==='Read more') {
            $(this).text('Read less');
        } else {
            $(this).text('Read more');
        }
    });
})

相关问题