0

我希望能够按下一个显示“隐藏”的按钮,然后在用户单击该按钮时说“显示”。在下面的代码中,切换部分有效,但现在我需要在隐藏内容后将“隐藏”文本变为“显示”。

我从以下位置获取切换代码: http: //thedesignspace.net/MT2archives/000298.html#.UW61YqKG33U

 <script type="text/javascript">
    function toggle(element) {
    document.getElementById(element).style.display = (document.getElementById(element).style.display == "none") ? "" : "none";
    }
    </script>

    <div class="ISBody">
     <h5>Header</h5>
     <div class="ISTopLink"><a href="#ISTop">Return to Top</div>
     <div class="ISHide"><a href="javascript:toggle('pos')">Hide Products - </a></div>
     <hr>
     <div id="pos" style="display: block;">
      <div class="ISProductBody">
       <div class="ISSubHead"><A HREF="#">Prodcut Name</A></div>
      <div class="ISList">
       <ul>
        <li>Text here</li>
        <li>Text here</li>
        <li>Text here</li>
        <li>Text here</li>
      </ul>
      </div>
    </div>
    </div>
4

6 回答 6

5

将您的按钮代码更改为以下内容:

<div class="ISHide" onclick="toggle(this)"><a href="#" >Hide Products</a></div>

并将您的脚本更改为这样的内容

<script type="text/javascript">
function toggle (t) {
if (t.childNodes[0].innerHTML == "Hide Products") {
    t.childNodes[0].innerHTML = "Show Products";
} else {
    t.childNodes[0].innerHTML = "Hide Products";
}
}
</script>
于 2013-04-17T17:41:29.437 回答
3

由于您的问题被标记为 jQuery,请使用 jQuery:

<div class="ISHide"><a href="#" class="hideLink">Hide Products - </a></div>


$(".hideLink").on("click", function(){
    if($(this).text()=="Hide Products - ")
    {
        $(this).text("Show Products - ");
    } else {
        $(this).text("Hide Products - ");
    }
    $(".ISProductBody").toggle(); 

    return false;
});

示例:http: //jsfiddle.net/calder12/KCj3r/

于 2013-04-17T17:39:52.610 回答
2

我的“答案”是对 Rick Calder 答案的修改。我使用了为类似场景提供的代码,但它在按钮内有 HTML 标记(在本例中为 Font Awesome 图标)。我认为它可能会帮助某些人将解决方案应用于其他情况。

我必须做的唯一修改是将“.text”更改为“.html”并添加“.addClass”/“.removeClass”以更改按钮样式。(不包括 CSS,因为它在这里很简单。)

这是我使用的代码:

$(".expand-button .button").on("click", function(){
    if($(this).html()==" Watch Video <i class=\"fa fa-play\"></i> ")
    {
        $(this).html(" Hide Video <i class=\"fa fa-times\"></i> ");
        $(this).addClass("secondary");
    } else {
        $(this).html(" Watch Video <i class=\"fa fa-play\"></i> ");
        $(this).removeClass("secondary");
    }
    $(".expand-button-content").fadeToggle();
});

谢谢你,里克和 OP。

于 2015-12-21T15:10:55.640 回答
0

下面显示了在功能顶部清楚地切换的按钮文本。为简洁起见,它使用了 Javasript 三元运算符。如果有必要,它还允许您循环浏览两个以上的文本标签。如果仅切换两个值,则标签值的顺序labels无关紧要。

$(".expand-button .button").on("click", function(e){
  const labels = ['Show', 'Hide']
  let idx = labels.indexOf(e.target.innerHTML) + 1
  idx == labels.length ? idx = 0 : idx
  e.target.innerHTML = labels[idx]
});

如果仅切换两个值,则仅使用三元运算符的更短的解决方案:

    e.target.innerHTML == 'Show' ? e.target.innerHTML == 'Hide' : e.target.innerHTML == 'Show'
于 2022-03-03T20:43:22.893 回答
0
var button = document.querySelector(".button")
var text   = document.querySelector(".text")
var t
button.addEventListener("click",function(){


    if(text.textContent=="Like"){
        t = "Liked"
    }
    else{
        t="Like"
    }
    text.textContent=t;
})

这是一个更改为 Liked 的 Like 按钮的示例。该方法非常简单,如果文本是 Like,则将变量 t 设置为“liked”,反之亦然,然后 t 替换文本内容。为我工作干杯,:D

于 2017-07-24T05:09:51.713 回答
0

TextBox.innerHTML = " ";
ButtonId.onclick = function(){
if (TextBox.innerHTML == " ") {
TextBox.innerHTML = "HI";
}
else {
TextBox.innerHTML = " ";
}
}
<a href="http://fbgadgets.blogspot.com/2014/01/link-change-into-button.html">ReadMore:</a>
<img id="ButtonId" src="https://www.w3schools.com/tags/smiley.gif" width="107" height="98">
<p id="TextBox"> </p>

于 2018-08-17T19:34:01.703 回答