Reputation: 31
This is my code and I want to get value of myText
. I tried with appendChild
but it doesn't work. How can I get myText
value when I click on button?
<div class="tut">
<input type="text" name="" id="myText" style="padding: 2px; font-size: 18px; outline: none;">
<input type="submit" name="" id="myBtn" onclick="myFunc()" style="padding: 2px; font-size: 18px;">
<ul id="myList">
<li>Coffe</li>
<li>Tea</li>
</ul>
<script type="text/javascript">
function myFunc() {
var = document.getElementById("myText").value;
document.getElementById("myList").appendChild();
}
</script>
</div>`
Upvotes: 0
Views: 64
Reputation: 21
Try updating your function to this:
function myFunc() {
var myText= document.getElementById("myText").value;
document.getElementById("myList").innerHTML+="<li>"+myText+"</li>";
}
Upvotes: 0
Reputation: 785
You need to store the value of the input into a variable.
Then, you need to create a new List Item DOM node to which you set the value from the variable.
Finally, you need to add the newly created list item Node to your list Node.
<div class="tut">
<input type="text" name="" id="myText" style="padding: 2px; font-size: 18px; outline: none;">
<input type="submit" name="" id="myBtn" onclick="myFunc()" style="padding: 2px; font-size: 18px;">
<ul id="myList">
<li>Coffe</li>
<li>Tea</li>
</ul>
<script type="text/javascript">
function myFunc() {
var value = document.getElementById("myText").value;
var newItem = document.createElement('li');
newItem.appendChild(document.createTextNode(value));
var list = document.getElementById("myList");
list.appendChild(newItem);
}
</script>
</div>`
Upvotes: 0
Reputation: 386883
For a plain text node, you could create one with document.createTextNode(text)
and use it directly. Nevertheless you need still a node for the list element, which you can then append to the unordered list node.
function myFunc() {
var text = document.getElementById("myText").value,
li = document.createElement('li');
li.appendChild(document.createTextNode(text));
document.getElementById("myList").appendChild(li);
}
<div class="tut">
<input type="text" name="" id="myText" style="padding: 2px; font-size: 18px; outline: none;">
<input type="submit" name="" id="myBtn" onclick="myFunc()" style="padding: 2px; font-size: 18px;">
<ul id="myList">
<li>Coffe</li>
<li>Tea</li>
</ul>
</div>
Upvotes: 0
Reputation: 1
There should be an identifier following var
, before =
to identify the variable.
Create an <li>
element using document.createElement()
, set .textContent
to variable identifier from previous line.
Pass created li
element to .appendChild()
.
favorite
<div class="tut">
<input type="text" name="" id="myText" style="padding: 2px; font-size: 18px; outline: none;">
<input type="submit" name="" id="myBtn" onclick="myFunc()" style="padding: 2px; font-size: 18px;">
<ul id="myList">
<li>Coffe</li>
<li>Tea</li>
</ul>
<script type="text/javascript">
function myFunc() {
var text = document.getElementById("myText").value;
var li = document.createElement("li");
li.textContent = text;
document.getElementById("myList").appendChild(li);
}
</script>
</div>`
Upvotes: 1