Reputation: 21
<ul id="myid">
<li class="example"><a href="New-Orleans">New Orleans</a></li>
<li class="example"><a href></a></li>
<li class="example"><a href="Miami">Miami</a></li>
<li class="example"><a href></a></li>
</ul>
I need to remove the li elements where the text of the anchor is blank.
How would i go about selecting this element? $(--what selector here--)
Upvotes: 2
Views: 48
Reputation: 2731
Shortest way :
$(".example:has(a[href=''])").remove()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="myid">
<li class="example"><a href="New-Orleans">New Orleans</a></li>
<li class="example"><a href></a></li>
<li class="example"><a href="Miami">Miami</a></li>
<li class="example"><a href></a></li>
</ul>
Upvotes: 0
Reputation: 3480
You can check empty of anchor and then remove parent element. Something like below snippet.
$(document).ready(function () {
$('#myid .example a').map(function(i,v) {
$(this).is(':empty')?$(this).parent().remove():'';
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="myid">
<li class="example"><a href="New-Orleans">New Orleans</a></li>
<li class="example"><a href></a></li>
<li class="example"><a href="Miami">Miami</a></li>
<li class="example"><a href></a></li>
</ul>
Upvotes: 0
Reputation: 28522
You can try like this :
$(".example > a[href='']").closest('li').remove()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="myid">
<li class="example"><a href="New-Orleans">New Orleans</a></li>
<li class="example">
<a href></a>
</li>
<li class="example"><a href="Miami">Miami</a></li>
<li class="example">
<a href></a>
</li>
</ul>
Upvotes: 1