简体   繁体   English

单击选项卡 Javascript 后更改 H1 中的文本

[英]Change text in H1 after click on tab Javascript

I'm using Bootstrap 5 Tabs and pure JS.我正在使用 Bootstrap 5 选项卡和纯 JS。 I want to change my H1 on the page when user click on another tab.当用户单击另一个选项卡时,我想更改页面上的 H1。 This is HTML:这是 HTML:

<div class="page-header container">
   <div class="row">
      <div class="col-12">
         <h1 itemprop="headline">Book an appointment</h1>
      </div>
   </div>
</div>
<ul id="booking-tabs" class="nav nav-tabs booking-tabs" role="tablist">
<li class="nav-item" role="presentation"><button id="in-clinic-tab" class="nav-link" role="tab" type="button" data-bs-toggle="tab" data-bs-target="#in-clinic" aria-controls="in-clinic" aria-selected="false">In Clinic</button></li>
<li class="nav-item" role="presentation"><button id="at-home-tab" class="nav-link active" role="tab" type="button" data-bs-toggle="tab" data-bs-target="#at-home" aria-controls="at-home" aria-selected="true">At Home</button></li>
<li class="nav-item" role="presentation"><button id="emergency-tab" class="nav-link" role="tab" type="button" data-bs-toggle="tab" data-bs-target="#emergency" aria-controls="emergency" aria-selected="false">Emergency</button></li>
</ul>
<div id="booking-tab-content" class="tab-content">
<div id="in-clinic" class="tab-pane fade show active" tabindex="0" role="tabpanel" aria-labelledby="in-clinic-tab">
<div class="clean-subtitle">Search for availabilities for appointments using our e-services portal.</div>
</div>
<div id="at-home" class="tab-pane fade" tabindex="0" role="tabpanel" aria-labelledby="at-home-tab">
<div class="clean-subtitle">Choose your service and request a booking through our operator.</div>
</div>
<div id="emergency" class="tab-pane fade" tabindex="0" role="tabpanel" aria-labelledby="emergency-tab">
<div class="clean-subtitle">Choose your service and request a booking through our operator.</div>
</div>
</div>
</div>
</div>
</div>

JS: JS:

window.onload = function(){
   if (document.querySelector('.booking-tabs')) {
      let tabButton = document.querySelector('.booking-tabs .nav-item #at-home-tab');
      tabButton.addEventListener('click', function(){
         if (document.getElementById('at-home').classList.contains('active')) {
            document.querySelector('.page-header .row .col-12 h1').innerText = 'Request a Home Service';
         }
      })
   }
};

For example, I'll want to click on At home tab and change text of H1, but it's not working.例如,我想单击 At home 选项卡并更改 H1 的文本,但它不起作用。 Maybe I have error in code?也许我的代码有错误? In console I can't see any errors.在控制台中我看不到任何错误。 Help, please to fix my JS帮助,请修复我的JS

I tried your code at my end and i think it's working as you described.我在最后尝试了您的代码,我认为它按照您的描述工作。 Did you include the bootstrap5 to your HTML?您是否将 bootstrap5 包含到您的 HTML 中?

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM