Reputation: 708
I have html like this:
<ul class="container">
<li class="sub1">
<a>Value1</a>
</li>
<li class="sub1">
<a>Value2</a>
</li>
</ul>
<ul class="container">
<li class="sub1">
<a>Value3</a>
</li>
<li class="sub1">
<a>Value4</a>
</li>
</ul>
...
As you can see there are "UL" with same class and "LI" with the same class. What I need just to loop through every "UL" and every "LI" and print out element "A" value one by one. The problem with my code that it collect all the matches in one. How to loop and print out separate line by line ?
MY code:
$('.container').each(function(i){
$('.sub1').each(function(a){
console.log($('a').text());
});
});
Upvotes: 1
Views: 110
Reputation: 26844
If you want to print
/console.log
each a
tag on each line, you have to use $(this).find('a').text()
this
is the current .sub1
of the iteration. Then .find
the a
and get the text.
$(function() {
$('.sub1').each(function(a) {
console.log($(this).find('a').text());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="container">
<li class="sub1">
<a>Value1</a>
</li>
<li class="sub1">
<a>Value2</a>
</li>
</ul>
<ul class="container">
<li class="sub1">
<a>Value3</a>
</li>
<li class="sub1">
<a>Value4</a>
</li>
</ul>
If you want to loop starting from ul
you can:
$(function() {
$('.container').each(function() {
console.log( "---- CONTAINER ----" );
$(this).find('.sub1').each(function() {
console.log($(this).find('a').text());
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="container">
<li class="sub1">
<a>Value1</a>
</li>
<li class="sub1">
<a>Value2</a>
</li>
</ul>
<ul class="container">
<li class="sub1">
<a>Value3</a>
</li>
<li class="sub1">
<a>Value4</a>
</li>
</ul>
Upvotes: 2
Reputation: 297
You can use a query to select the values.
$(".container .sub1 a").each (function (){
console.log ($(this).text ());
})
Upvotes: 1
Reputation: 30739
You need to follow simple operation:
$(".sub1 a").each(function(el) {
console.log($(this).html());
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="container">
<li class="sub1">
<a>Value1</a>
</li>
<li class="sub1">
<a>Value2</a>
</li>
</ul>
<ul class="container">
<li class="sub1">
<a>Value3</a>
</li>
<li class="sub1">
<a>Value4</a>
</li>
</ul>
Upvotes: 0
Reputation: 36703
ul.container li a
this will select all the a
which are under li.sub1
of ul.container
.
$("ul.container li.sub1 a").each(function(el) {
console.log($(this).html());
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="container">
<li class="sub1">
<a>Value1</a>
</li>
<li class="sub1">
<a>Value2</a>
</li>
</ul>
<ul class="container">
<li class="sub1">
<a>Value3</a>
</li>
<li class="sub1">
<a>Value4</a>
</li>
</ul>
Upvotes: 0