I have this code:
<div class="user-fields-list"> <div class="user-field"> <div class="label">A</div> </div> <div class="user-field"> <div class="label">B</div> </div> <div class="user-field"> <div class="label">C</div> </div> <div class="user-field"> <div class="label">D</div> </div> </div>
I want to get all the text content of the "label" divs. How can I do that?
EDIT: I need a loop because later I need to do some "if" conditions based on the text content of each div
Thanks all!
You can use a query selector and forEach to get the textContent of each of the div
s with a certain class.
<div class="user-fields-list"> <div class="user-field"> <div class="label">A</div> </div> <div class="user-field"> <div class="label">B</div> </div> <div class="user-field"> <div class="label">C</div> </div> <div class="user-field"> <div class="label">D</div> </div> </div> <script> var text = ""; document.querySelectorAll(".label").forEach(div=>{ text+=div.textContent; }); console.log(text); </script>
You can use document.querySelectorAll('.label')
to select all div with class label
and loop over that to get its content:
var targetDiv = document.querySelectorAll('.label'); for(var i=0; i<targetDiv.length;i++){ if(targetDiv[i].textContent === "A"){ targetDiv[i].style.background = 'red'; } }
<div class="user-fields-list"> <div class="user-field"> <div class="label">A</div> </div> <div class="user-field"> <div class="label">B</div> </div> <div class="user-field"> <div class="label">C</div> </div> <div class="user-field"> <div class="label">D</div> </div> </div>
You can use the class selector as following:
var lab = document.getElementsByClassName("label"); for (var i = 0; i < lab.length; i++) { console.log(lab[i].innerHTML); //You can use innerHTML or textContent according to your need }
<div class="user-fields-list"> <div class="user-field"> <div class="label">A</div> </div> <div class="user-field"> <div class="label">B</div> </div> <div class="user-field"> <div class="label">C</div> </div> <div class="user-field"> <div class="label">D</div> </div> </div>
<div class="user-fields-list">
<?php foreach (range('A', 'Z') as $column){ ?>
<div class="user-field">
<div class="label"><?php echo $column; ?></div>
</div>
<?php } ?>
</div>
Simple for loop iteration through the webelement array and string concat should do the trick!
var elems = document.getElementsByClassName('label');
var stringToConcat = "";
for (i = 0; i < elems.count; i++) {
stringToContact.concat(elems[i].text)
}
console.log(stringToConcat);
I would iterate through like this. Initially get all the .user-field
divs and after wards just forEach the nodes you received.
let fieldsList = document.querySelectorAll('.user-fields-list .user-field'); fieldsList.forEach((currentValue, currentIndex) => { console.log(currentValue.innerText, currentIndex); })
<div class="user-fields-list"> <div class="user-field"> <div class="label">A</div> </div> <div class="user-field"> <div class="label">B</div> </div> <div class="user-field"> <div class="label">C</div> </div> <div class="user-field"> <div class="label">D</div> </div> </div>
You can use document.getElementsByClassName('label');
to select all div
with class label
var items = document.getElementsByClassName('label');
for (var i = 0; i < items.length; i++)
console.log(items[i].textContent);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.