I have a list of keywords that I want to filter based on <li id="newKeyword">
:
<ul id="keywordList">
<li></li>
<li id="newKeyword"></li>
<li></li>
<li></li>
<li></li>
</ul>
When I click a button, the function showNewKeywords()
triggers:
function showNewKeywords() {
// Declare variables
var ul, li;
ul = document.getElementById("keywordList");
li = ul.getElementsByTagName('li');
// Loop through all list items, and hide those who don't have the li ID
for (i = 0; i < li.length; i ) {
// Find id of each li within the list
}
}
I have difficulties looping through the list of li
tags to find the ones with the id
. I tried the getElementById
method, but that goes through the entire file (I think).
Any tips on how to filter through a list of li
based on the li id
?
Thanks so much!
Edit: fixed typos.
CodePudding user response:
When you loop you need to get li
element, I assigned to a
variable, and get its id
put it inside txtValue
and test for that if is not equal (!=)
then remove it with affect it a style of display:none
:
function showNewKeywords() {
// Declare variables
var ul, li;
ul = document.getElementById("keywordList");
li = ul.getElementsByTagName('li');
// Loop through all list items, and hide those who don't have the li ID
for (i = 0; i < li.length; i ) {
//vvvv
a = li[i];
// My main problem here
//a = "find id of each li within the list";
txtValue = a.id;
// This is a secondary problem but I'll figure it out
if (txtValue!='newKeyword') {
a.style.display = "none";
}
}
}
<ul id="keywordList">
<li></li>
<li id="newKeyword"></li>
<li></li>
<li></li>
<li></li>
</ul>
<button onclick="showNewKeywords()">show New Keywords</button>
PS: choose better naming of variables:
instead of a
name it with currentLI
which has more sense, and also for txtValue
replace it with idOfCurrLI
.