0

I have this HTML -

 <div class="qa">
<div class="questions"></div>
<div class="answers">
  <div class="answer">
    <input type="radio" name="answer" value="Correct" id="Correct" /><label for="Correct"> Answer 1 </label>
  </div>
  <div class="answer">
    <input type="radio" name="answer" value="Incorrect" id="Incorrect" /><label for="Incorrect"> Answer 2 </label>
  </div>
</div>

And my JavaScript look something like this -

var questions = [ {
"q": "When was Project Launched?",
"a": {"Correct": "That's Right!","Incorrect": "Nope, Project was launched in 2016"  },
"Option1": "2016",
"Option2": "2017"  
}, 

What I would like is the answers to pull dynamically to the radio button label in the HTML. So I really need to be able to put the "Option1" and "Option2" IDs into the <label for="Correct"> space instead of just the static "Answer1" "Answer2" text.

Is it possible?

Thanks,

2 Answers2

3

try $('label[for=Correct]').html('New Label'); or without Jquery

var input = document.getElementById('Correct');
var label = input.getElementsByTagName('label')[0];
label.innerHTML = 'New Text';

From this answer

Community
  • 1
  • 1
Timble
  • 499
  • 4
  • 15
0

Does this help you?

var questions = [ {
    "q": "When was Project Launched?",
    "a": {"Correct": "That's Right!","Incorrect": "Nope, Project was launched in 2016"  },
    "Option1": "2016",
    "Option2": "2017"  
}];



var divElement1 = document.getElementsByClassName("answer")[0];
divElement1.childNodes[3].innerText = questions[0].Option1;

var divElement2 = document.getElementsByClassName("answer")[1];
divElement2.childNodes[3].innerText = questions[0].Option2;
<div class="qa">
    <div class="questions"></div>
    <div class="answers">
        <div class="answer">
   <input type="radio" name="answer" value="Correct" id="Correct" />
   <label for="Correct"> Answer 1 </label>
  </div>
  <div class="answer">
   <input type="radio" name="answer" value="Incorrect" id="Incorrect" />
   <label for="Incorrect"> Answer 2 </label>
  </div>
 </div>
</div>
Ala Eddine JEBALI
  • 7,033
  • 6
  • 46
  • 65