javascript - 使用javascript更改html标签内的文本

标签 javascript html

我正在尝试使用纯 JavaScript 更改 li 标记内的文本。 html 内容始终是这样的:

<section id="sidebar-right" class="sidebar-menu sidebar-right sidebar-open">
  <div class="cart-sidebar-wrap">
    <div class="cart-widget-heading">
      <h4>Shopping Cart</h4>
      <a id="sidebar_close_icon" class="close-icon-white"></a>
    </div>
    <div class="widget shopping-cart-sidebar store widget_shopping_cart">
      <div class="widget_shopping_cart_content">
        <div class="cart-widget-content">
          <div class="cart-widget-product">
            <ul class="cart-product-item cart_list product_list_widget ">
              <li class="empty">No products in the cart.</li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

我想更改“购物车中没有产品”。使用 javascript 无需更改 html 代码。

我尝试过这样做:

<script type="text/javascript">
    var cart_ = document.getElementById("sidebar-right");
    if(cart_){
        var target_ = cart_.getElementsByClassName("cart-sidebar-wrap")[0];
        target_ = target_.getElementsByClassName("widget")[0];
        target_ = target_.getElementsByClassName("widget_shopping_cart_content")[0];
        target_ = target_.getElementsByClassName("cart-widget-content")[0];
        console.log(target_);
    }
</script>

有人可以展示如何做到这一点吗?

最佳答案

您可以使用querySelector使用 CSS 选择器,这比仅使用类名更灵活

在此示例中,我们选择带有 cart-product-item 类的 ul,然后选择任何直接子项 (>) li 元素。

let cart_ = document.getElementById("sidebar-right");
if (cart_) {
  let target_ = document.querySelector('ul.cart-product-item > li');

  console.log(target_);      
  target_.textContent = 'Changing the text';
}
<section id="sidebar-right" class="sidebar-menu sidebar-right sidebar-open">
  <div class="cart-sidebar-wrap">

    <div class="cart-widget-heading">
      <h4>Shopping Cart</h4>
      <a id="sidebar_close_icon" class="close-icon-white"></a>
    </div>
    <div class="widget shopping-cart-sidebar store widget_shopping_cart">
      <div class="widget_shopping_cart_content">

        <div class="cart-widget-content">
          <div class="cart-widget-product">
            <ul class="cart-product-item cart_list product_list_widget ">
              <li class="empty">No products in the cart.</li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

关于javascript - 使用javascript更改html标签内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59455898/

相关文章:

html - 使用 BreadcrumbList 获取 SEO 错误

javascript - 在提交表单之前使用 jquery 检查 $_POST 数据

javascript - Angular 2如何防止特定变量的数据绑定(bind)

html文档中的javascript和css,最佳实践?

JavaScript getElementById().value 不起作用

html - 背景图片边框

Javascript - 如何在不按高度切割图片的情况下将视频屏幕固定为拉伸(stretch)宽度和高度

javascript - 使用 GeoJson GoogleMaps Api v3 缩放到标记

html - Flexbox - 等高图像列

php - 如何创建布局模板 - 静态网站