阅读更多按钮 jQuery 隐藏仅适用于 WordPress 中 div 的第一个元素

read more button jquery hiding only work on first element of div in wordpress

提问人:Usman 提问时间:10/15/2020 更新时间:10/15/2020 访问量:273

问:

嗨,我对这段代码有问题,它只隐藏了 div 的前 p,我的 div 包含不同的标题和段落,我想隐藏所有前 180 个字符,但它只隐藏了前 li

<div class="product-short-description">
    <h5>Product Description</h5>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
<h5>Product Details</h5>
<p>Material: Aluminium</p>
<p>Warranty: One Year Warranty Guarantee</p>
<p>Original: China</p>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
<h5>Shipping Information</h5>

</ul>
</div>



function bbloomer_woocommerce_short_description_truncate_read_more() { 
   wc_enqueue_js('
      var show_char = 180;
      var ellipses = "... ";
      var content = $(".product-short-description").html();
      //var content = $(".product-short-description").text().length

      alert(content);


      if (content.length > show_char) {
         var a = content.substr(0, show_char);
         var b = content.substr(show_char - content.length);
         var html = a + "<div class=\'truncated\'>" + ellipses + "<a class=\'read-more\'>Read more</a></div><div class=\'truncated\' style=\'display:none\'>" + b + "</div>";
         $(".product-short-description").html(html);
      }
      $(".read-more").click(function(e) {
         e.preventDefault();
         $(".product-short-description .truncated").toggle();
      });
   ');
}
wordpress woocommerce 切换按钮

评论


答:

0赞 Sco 10/15/2020 #1

以 PHP/HTML 格式显示 WP 函数 => https://developer.wordpress.org/reference/functions/wp_trim_words/

// PHP
$text = 'Lorem ipsum dolor';
$words = 2;
$more = ' … <a class=\'read-more\'>Read more</a>';
$excerpt = wp_trim_words( $text, $words, $more );
// $excerpt => Lorem ipsum … Read more
?>

<div class="product-short-description">
    <div class="excerpt">
        <?php echo $excerpt; ?>
    </div>

    <div class="truncated" style="display: none;">
        <?php echo $text; ?>
    </div>
    
</div>

JS 中的操作

// JS
$(".read-more").click(function(e) {
    e.preventDefault();
    $(".product-short-description .truncated").toggle();
    $(".product-short-description .excerpt").toggle();
});

评论

0赞 Usman 10/16/2020
感谢您的回复,我无法访问我在前端与jQuery有关的所有代码,我正在使用您看到的上面的代码,我必须将段落限制在140个字符,包括标题li div等,如果您可以修改我的代码,那将有很大帮助。