如何在jQuery上切换点击段落时内容的外观

piah890a  于 2023-04-20  发布在  jQuery
关注(0)|答案(1)|浏览(99)

我希望一些html内容出现时,点击文本,如按钮或输入,并在第二次点击,其消失

<p class="test">test</p>
<script
    src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js"
    integrity="sha512-pumBsjNRGGqkPzKHndZMaAG+bir374sORyzM3uulLV14lN5LyykqNk8eEeUlUkB3U0M4FApyaHraT65ihJhDpQ=="
    crossorigin="anonymous"
    referrerpolicy="no-referrer"
></script>
<script>
var toggle = 0;

$( "p" ).click(function() {
    var htmlorig = $( this ).html();
    if (toggle != 1) {
        var toggle = 1;
        $( this ).html( htmlorig + '<button>sds</button>' );
      } else {
        var toggle = 0;
        $( this ).html( htmlorig );
      }
});
</script>

这里是codepen https://codepen.io/pire-code/pen/QWZyVZE

我试过这个,没有工作。我知道我可以使用另一个cdn。帮助,请。

rsaldnfx

rsaldnfx1#

您可以使用.each将原始HTML和toggle变量存储在闭包中。

$('p').each(function() {
  const $this = $(this);
  const htmlOrig = $this.html();
  let toggle = 1;
  $this.click(function(e) {
    $this.html(toggle ? htmlOrig + ' <button>sds</button>' : htmlOrig);
    toggle ^= 1;
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="test">test</p>

相关问题