如何使用javascript切换元素


How to toggle elements with javascript

我在wordpress中使用wooccommerce插件,我不想在我的产品上显示两个不同的价格。

一个是默认值,当用户进入页面时显示,另一个是当用户单击按钮时显示。如果他再次点击相同的按钮,之前的价格应该会再次显示。等等。

因此,对页面上显示的内容进行某种类型的检查,我想这可以在JQuery中完成,但还有其他方法吗?我尝试了一些JQuery,但在wooccommerce中使用它时遇到了一些问题。

<?php
$incl = $product->get_price_including_tax();?>
<p id="excl" class="price"><?php echo $product->get_price_excluding_tax();?> excl.</p>
<button type="button" onclick="document.getElementById('excl').innerHTML = <?php echo $incl;?>">Click Me!</button>

这是单向的,但需要前面提到的检查才能再次以另一种方式使用。

还有一个额外的问题:那些incl和excl税调用破坏了在管理端通过价格格式进行的设置。所以6.000,00表示瞬间变为6000。我尝试过woommerce_price,它有效,但被弃用。有类似的功能吗?在文档中找不到任何内容。

我会将它们都写入DOM,并使用jQuery 中的toggleClass()

<?php
$incl = $product->get_price_including_tax();?>
<div class="mycont">
    <p id="excl" class="price excl"><?php echo $product->get_price_excluding_tax();?> excl.</p>
    <p id="incl" class="price incl"><?php echo $incl;?> excl.</p>
</div>
<button type="button">Click Me!</button>

带有以下CSS:

.mycont > .price.incl {display: none}
.mycont.show_incl > .price.incl {display: block}
.mycont.show_incl > .price.excl {display: none}

和jQuery:

$('button').on('click', function(){
    $('.mycont').toggleClass('show_incl');
});

Fiddle Here

如果你想用纯javascript来做,我建议在按钮上调用函数onClick事件,并像这里所说的那样切换类

使用ternary运算符、condition ? expr1 : expr2

条件(三元)运算符是唯一一个接受三个操作数的JavaScript运算符。此运算符经常用作if语句[Reference]的快捷方式

注意:不要在标记中混淆逻辑。你应该有一个单独的函数。

<p id="excl" class="price">100</p>
<button type="button" onclick="document.getElementById('excl').innerHTML=document.getElementById('excl').innerHTML=='500'?'100':'500'">Click Me!</button>