I have problem with append Child to whole classes in my document which the name of class is “onbackorder”. Here is my code:
JavaScript
x
11
11
1
<script>
2
var first = document.createElement("p");
3
var text = document.createTextNode("On backorder");
4
first.appendChild(text);
5
6
var isRequestQuote = document.getElementsByClassName('onbackorder');
7
if (isRequestQuote.length > 0) {
8
document.querySelector(".onbackorder").appendChild(first);
9
}
10
</script>
11
For this moment function put selector randomly. How can I get same selector in whole document where class is “onbackorder”.
Thank you
Advertisement
Answer
There are 2 points:
document.querySelector(".onbackorder")
is just return first item. So you need to usedocument.querySelectorAll('.onbackorder')
.
The Document method querySelector() returns the first Element within the document that matches the specified selector, or group of selectors. If no matches are found, null is returned.
https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector
var first = document.createElement("p");
you have to create multiple reference variable to append to eachonbackorder
item. Because you cannot create only one and append to multiple items.
So I modified your code and make it works. You can check it at below:
JavaScript
1
9
1
var first = document.createElement("p");
2
var text = document.createTextNode("On backorder");
3
first.appendChild(text);
4
5
const allBackOrders = document.querySelectorAll('.onbackorder');
6
allBackOrders.forEach((item) => {
7
var newItem = first.cloneNode(true);
8
item.appendChild(newItem);
9
});
JavaScript
1
3
1
<div class="onbackorder"></div>
2
<div class="onbackorder"></div>
3
<div class="onbackorder"></div>