3

This function is run every time an item is added to an array. It simply creates a list item element, appends some text to that item, and then appends it to a list element (#requestList).

function UpdateListOnScreen(NewListItem){
  
  var grabList = document.getElementById('requestList');
  
  var text = ""+ GetCalendarName(NewListItem.calChoice) +" For "+ GetLessonSlot(NewListItem.lessonChoice) + " On " + GetDateInTextForm(NewListItem.date) + "";
  var entry = document.createElement('li');
  entry.id = list.length-1;
  entry.className = "ItemNotChecked";
  entry.appendChild(document.createTextNode(text));
  grabList.appendChild(entry);
}

Something I'm struggling to figure out is how do I add a button element onto that list item? I want every list item to have its own button element, but can't seem to figure out how I append a button to the list item after appending the text to the list item.

Thanks.

2 Answers 2

10

This is an example how you can insert button :

var ul = document.getElementById("list");
var li = document.createElement("li");
li.appendChild(document.createTextNode("Four"));
var button = document.createElement("button");
button.innerHTML = "asdasd";
li.appendChild(button);
li.setAttribute("id","element4");
ul.appendChild(li);
alert(li.id);
<ul id="list"></ul>

Sign up to request clarification or add additional context in comments.

Comments

1

This should do the trick:

function UpdateListOnScreen(NewListItem) { 
  var grabList = document.getElementById('requestList');

  var text = "" + GetCalendarName(NewListItem.calChoice) + " For " + GetLessonSlot(NewListItem.lessonChoice) + " On " + GetDateInTextForm(NewListItem.date) + "";
  var entry = document.createElement('li');
  entry.id = list.length - 1;
  entry.className = "ItemNotChecked"; 
  entry.appendChild(document.createTextNode(text));

  /*Add a button to each LI */
  var button = document.createElement('button');
  button.innerText = 'Click me!';
  entry.appendChild(button);

  grabList.appendChild(entry);
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.