javascript - 具有 id 的多个文本的 1 个按钮切换

标签 javascript jquery html css toggle

你好,

我正在尝试制作一个按钮来切换一些文本,并且我希望文本根据 id 进行更改。

所以 1 个按钮可以打开/关闭文本,而文本会根据 id 更改

这可能吗?

编辑:

我的一侧有一个幻灯片,我可以用它来更改显示的图像,而在另一侧有一个关于图像当前图像的文本。我还想在图像更改的同时更改文本。

我还有一个按钮用于打开/关闭文本,我不希望在网站第一次加载时显示文本。

如何同时更改文本和图像,但仅在按下切换按钮时才显示文本?

对于我的 HTML:

  <img class="mySlides" src="img/bouc.jpg" style="width:100%">
  <p class="img-name">BOUC 1</p>
  <div class="txt-div" id="1">
    <p>Text 1</p></p>
  </div>

  <img class="mySlides" src="img/bouc.jpg" style="width:100%">
  <p class="img-name">BOUC 2</p>
  <div class="txt-div" id="2">
    <p>Text 2</p></p>
  </div>

  <button class="chat-button w3-display-left" onclick="plusDivs(-1)"></button>
  <button class="chat-button w3-display-right" onclick="plusDivs(1)"></button>  
  <button class="chat-button-txt">Text</button>

对于我拥有的 CSS:

.txt-div{
...
display: none;
...
}

对于我拥有的 JS:

var slideIndex = 1;
showDivs(slideIndex);

function plusDivs(n) {
  showDivs(slideIndex += n);
}

function currentDiv(n) {
  showDivs(slideIndex = n);
}

function showDivs(n) {
    var i;
    var x = document.getElementsByClassName("mySlides");
    var dots = document.getElementsByClassName("img-count");
    var txt = document.getElementsByClassName("txt-div");
    var noms = document.getElementsByClassName("img-name");
  if (n > x.length) {slideIndex = 1}    
  if (n < 1) {slideIndex = x.length}
  for (i = 0; i < x.length; i++) {
     x[i].style.display = "none";
     dots[i].style.display = "none";
     noms[i].style.display = "none";
  }

  x[slideIndex-1].style.display = "block";
  dots[slideIndex-1].style.display = "block";
  noms[slideIndex-1].style.display = "block";

    $(document).ready(function(){
        $(".chat-button-txt").click(function(){
        $(".txt-div").toggle();
        });
    });
}

我不知道如何使文本与“x”、“dots”和“noms”同时更改,而仅在通过“chat-button-txt”切换时显示

有人有想法吗?

最佳答案

我找到了一个解决方案,通过添加另一个类来使用切换按钮“屏蔽”文本,并且文本可以在图像更改的同时更改,但这不是“更好的方法”吗?

我的实际代码:

HTML

<div class="cover-txt"></div>
  <img class="mySlides" src="img/bouc.jpg" style="width:100%">
  <p class="img-name">BOUC 1</p>
  <div class="txt-div" id="1">
    <p>Text 1</p>
  </div>

  <img class="mySlides" src="img/bouc.jpg" style="width:100%">
  <p class="img-name">BOUC 2</p>
  <div class="txt-div" id="2">
    <p>Text 2</p>
  </div>

<button class="chat-button w3-display-left" onclick="plusDivs(-1)"></button>
  <button class="chat-button w3-display-right" onclick="plusDivs(1)"></button>  
  <button class="chat-button-txt">Text</button>

CSS

.cover-txt{
position: absolute;
background-color: white;
display: block;
top:10%;
left:104%;
width: 22vw;
height: 25vw;
z-index: 999;
}

JS

var slideIndex = 1;
showDivs(slideIndex);

function plusDivs(n) {
  showDivs(slideIndex += n);
}
function currentDiv(n) {
  showDivs(slideIndex = n);
}

function showDivs(n) {
    var i;
    var x = document.getElementsByClassName("mySlides");
    var dots = document.getElementsByClassName("img-count");
    var txt = document.getElementsByClassName("txt-div");
    var noms = document.getElementsByClassName("img-name");
  if (n > x.length) {slideIndex = 1}    
  if (n < 1) {slideIndex = x.length}
  for (i = 0; i < x.length; i++) {
     x[i].style.display = "none";
     dots[i].style.display = "none";
     noms[i].style.display = "none";
     txt[i].style.display = "none";
  }

  x[slideIndex-1].style.display = "block";
  dots[slideIndex-1].style.display = "block";
  noms[slideIndex-1].style.display = "block";
  txt[slideIndex-1].style.display = "block";

    $(document).ready(function(){
        $(".chat-button-txt").click(function(){
        $(".cover-txt").toggle();
        });
    });
}

我认为这不是最好的解决方案,但我为我工作。如果有人有更好的东西,我会很乐意阅读。

非常感谢,

问候,

关于javascript - 具有 id 的多个文本的 1 个按钮切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47687064/

相关文章:

javascript - 在 jQuery AJAX 的 foreach 循环中排除某些对象属性

javascript - 调整视口(viewport)大小时输入框没有间隔( Bootstrap )

html - 对于小分辨率屏幕,网页底部的 Bootstrap 导航选项卡不会停留在底部

javascript - 使用 TCPDF 保存 PDF 时无输出

javascript - 动态生成的下拉菜单

javascript - 正则表达式在javascript中的所有单元格名称中添加前缀

javascript - 使用 jQuery 查找事件表单元素

javascript - 从事件处理程序写入 WriteStream

javascript - Angular 用链接替换部分不安全文本

html - CSS: transform:scale - 带有两个类的 img 标签