Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

306
Views
i have three icon. i used forEach loop for this but not find the way to change icon in its prior form when click on other icon

i used toggle for changing icon from icon(-) to this icon(+). but i stuck in the problem how to change icon(+) to this(-) when i click on another icon.

const icn = document.querySelectorAll("span");

icn.forEach(icons => {
  icons.addEventListener("click", function(e) {
    e.preventDefault()
    // console.log(e.currentTarget.classList)
    e.currentTarget.classList.toggle("fa-times");
    if (e.currentTarget.classList.contains("fa-times")) {
      // document.querySelector(".answer").style.display="flex"
    } else {
      document.querySelector(".answer").style.display = "none"

    }
  });
});
<div class="question-container">
  <div class="question">
    <h2>Do You Like fruits?</h2>
    <div class="questionIcn">
      <span class="fas fa-check icn"></span>
    </div>
  </div>
</div>

<div class="question-container">
  <div class="question">
    <h2>Do You Like vegetable?</h2>
    <div class="questionIcn">
      <span class="fas fa-check icn"></span>
    </div>
  </div>
</div>

<div class="question-container">
  <div class="question">
    <h2>Do you like gaming?</h2>
    <div class="questionIcn">
      <span class="fas fa-check"></span>
    </div>
  </div>
</div>
</div>

i don't know about any other language like jquery . i want to do this by using simple js because i m a begginer and it's my project.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Add jQuery JS file into your page. and use below code.

I hope this code will fix your issue.

const icn = document.querySelectorAll("span");



$(document).on("click", "span.fas", function(e){
  e.preventDefault();
  $("span.fas").removeClass("fa-times");
  $(e.target).toggleClass("fa-times");
  if ($(e.target).hasClass("fa-times")) {
      // document.querySelector(".answer").style.display="flex"
    } else {
      $(".answer").hide();
    }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" rel="stylesheet"/>

<div class="question-container">
  <div class="question">
    <h2>Do You Like fruits?</h2>
    <div class="questionIcn">
      <span class="fas fa-check icn"></span>
    </div>
  </div>
</div>

<div class="question-container">
  <div class="question">
    <h2>Do You Like vegetable?</h2>
    <div class="questionIcn">
      <span class="fas fa-check icn"></span>
    </div>
  </div>
</div>

<div class="question-container">
  <div class="question">
    <h2>Do you like gaming?</h2>
    <div class="questionIcn">
      <span class="fas fa-check"></span>
    </div>
  </div>
</div>
</div>

about 4 years ago · Juan Pablo Isaza Report

0

I wrap the HTML code with <div class='wrapper'> because of event delegation which is more effective than before.

The code below will work as you intended.

const $wrapper= document.querySelector(".wrapper");

$wrapper.addEventListener("click", (e) => {
  const $selectedIcn = e.target.closest(".icn");
  if (!$selectedIcn) return;

  $selectedIcn.classList.toggle("fa-times");
  $selectedIcn.classList.toggle("fa-plus");

  const questionContainers = document.querySelectorAll(".question-container");
  [...questionContainers].map((questionContainer) => {
    const $icn =
      questionContainer.firstElementChild.lastElementChild.firstElementChild;
    if ($icn !== $selectedIcn) {
      $icn.classList.remove("fa-times");
      $icn.classList.add("fa-plus");
    }
  });
});
<link rel="stylesheet" 
href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" />

<div class='wrapper'>
  <div class="question-container">
    <div class="question">
      <h2>Do You Like fruits?</h2>
      <div class="questionIcn">
        <span class="fas fa-plus icn"></span>
      </div>
    </div>
  </div>
  <div class="question-container">
    <div class="question">
      <h2>Do You Like vegetable?</h2>
      <div class="questionIcn">
        <span class="fas fa-plus icn"></span>
      </div>
    </div>
  </div>
  <div class="question-container">
    <div class="question">
      <h2>Do you like gaming?</h2>
      <div class="questionIcn">
        <span class="fas fa-plus icn"></span>
      </div>
    </div>
  </div>
</div>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!