Beste,

Ik zit vast... Ik wil een A-Z pagina maken met woorden die een link bevatten naar andere pagina's. Dus in verschillende kolommen van een tabel (A - B - C enz) woorden met de juiste beginletter en boven de tabel een searchbox, waarin je op de hele pagina naar dat woord kan zoeken. En dan het liefst dat als je 2 letters in de searchbox hebt getypt je het juiste woord al vind op de pagina.

Nou had ik al een script gevonden (https://www.w3schools.com/howto/howto_js_filter_lists.asp), maar daarmee kan ik niet in meerdere kolommen zoeken (<td>). Alleen in de eerste kolom worden resultaten uit gehaald. Wie kan mij op de goede weg helpen of mij verwijzen naar een andere (werkend) script? Bij voorbaat dank! Roel:)>


<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
  box-sizing: border-box;
}

#myInput {
  background-image: url('/css/searchicon.png');
  background-position: 10px 12px;
  background-repeat: no-repeat;
  width: 50%;
  font-size: 16px;
  padding: 12px 20px 12px 40px;
  border: 1px solid #ddd;
  margin-bottom: 12px;
}

#myUL {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

#myUL li a {
  border: 1px solid #ddd;
  margin-top: -1px; /* Prevent double borders */
  background-color: #f6f6f6;
  padding: 7px;
  text-decoration: none;
  font-size: 12px;
  color: black;
  display: block
}

#myUL li a:hover:not(.header) {
  background-color: #eee;
}
</style>
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Zoek.." title="Type in a name">
<script>
function myFunction() {
    var input, filter, ul, li, a, i, txtValue;
    input = document.getElementById("myInput");
    filter = input.value.toUpperCase();
    ul = document.getElementById("myUL");
    li = ul.getElementsByTagName("li");
    for (i = 0; i < li.length; i++) {
        a = li[i].getElementsByTagName("a")[0];
        txtValue = a.textContent || a.innerText;
        if (txtValue.toUpperCase().indexOf(filter) > -1) {
            li[i].style.display = "";
        } else {
            li[i].style.display = "none";
        }
    }
}
</script>

   <table cellspacing="0" width="100%" class="ms-rteTable-0 ">
      <tbody>
         <tr class="ms-rteTableEvenRow-0">
            <td class="ms-rteTableEvenCol-0" style="width: 33.3333%;">A<br>
               <ul id="myUL">
                  <li> 
                     <a href="#">Adele</a></li>
                  <li> 
                     <a href="#">Agnes</a></li>
               </ul>
            </td>
            <td class="ms-rteTableEvenCol-0" style="width: 33.3333%;">B<br> 
               <ul id="myUL">
                  <li> 
                     <a href="#">Billy</a></li>
                  <li> 
                     <a href="#">Bob</a></li>
               </ul>
            </td>
            <td class="ms-rteTableEvenCol-0" style="width: 33.3333%;">C<br>
               <ul id="myUL">
                  <li> 
                     <a href="#">Calvin</a></li>
                  <li> 
                     <a href="#">Christina</a></li>
                  <li> 
                     <a href="#">Cindy</a></li>
               </ul>
            </td>
enz...
         </tr>
</table>


Je wordt al op weg geholpen door dat script gezien onderaan staat "Also check out Filter Table." wat verwijst naar https://www.w3schools.com/howto/howto_js_filter_table.asp

Nu moet je dat script aanpassen zodat het op meerdere kolommen controleert.
Dus je maakt meerdere input zoekwaarden en je controleert op die respectievelijke kolom.

Jan
hier is een oude "slechte" code van mij over 2 kolommen
function filtertable(term1, tableID, cellNr1, term2, cellNr2) {
    let zoekvoornaam = document.getElementById(term1).value.toLowerCase();
    let zoekfamilienaam = document.getElementById(term2).value.toLowerCase();
    let table = document.getElementById(tableID);
    let ele1;
    let eleFN;
    let i;

    for (i = 1; i < table.rows.length; i++) {//1 want 0=kop
		let okVN=false;
		if(zoekvoornaam==""){
			okVN=true;
		}else{
			let sZoekvoornaam=zoekvoornaam.split(",");
			ele1 = table.rows[i].cells[cellNr1].innerHTML.replace(/<[^>]+>/g,"").toLowerCase();//voornaam
			for(let i=0;i<sZoekvoornaam.length;i++){
				if(sZoekvoornaam[i]!=""){
					if (ele1.indexOf(sZoekvoornaam[i])>=0){
						okVN=true;
					}
				}
			}
		}
		
		let okFN=false;
		if(zoekfamilienaam==""){
			okFN=true;
		}else{
			let sZoekfamilienaam=zoekfamilienaam.split(",");
			eleFN = table.rows[i].cells[cellNr2].innerHTML.replace(/<[^>]+>/g,"").toLowerCase();//familienaam
			for(let i=0;i<sZoekfamilienaam.length;i++){
				if(sZoekfamilienaam[i]!=""){
					if (eleFN.indexOf(sZoekfamilienaam[i])>=0){
						okFN=true;
					}
				}
			}
		}
		
        if (okVN && okFN) {
			//blijft zichtbaar
        }else {
            table.rows[i].style.display = "none";
        }
    }
}
Hoi Jan, met dit voorbeeld en verwijzing krijg ik het niet voor elkaar. Ik wil dat mijn eindresultaat er zo uit komt te zien (), maar mijn kennis reikt niet ver genoeg om uit te zoeken hoe zij het gemaakt hebben. Bedankt!
zoiets?

<!DOCTYPE html>
<html lang="nl">
	<head>
		<meta charset="utf-8">
		<title>Test</title>
        <style>
            nav ul {
                list-style-type:none;
            }
            nav > ul > li > ul > li {
                display:inline-block;
                width:150px;
                border: 1px solid black;
                margin:5px;
            }
        </style>
        <script>
            function dofilter(ctrl) {
                let zoek = ctrl.value.toLowerCase();
                let items = document.querySelectorAll("nav > ul > li > ul > li");
                let letters = document.querySelectorAll("nav > ul > li");
                
                for(let i=0;i<letters.length;i++) {
                    letters[i].style.display="";
                }
                
                for(let i=0;i<items.length;i++) {
                    items[i].style.display="";
                }
                for(let i=0;i<items.length;i++) {
                    if(items[i].innerText.toLowerCase().indexOf(zoek)<0) {
                        items[i].style.display="none";
                    }
                }
                
                for(let i=0;i<letters.length;i++) {
                    let letterItems =letters[i].getElementsByTagName("li");
                    letters[i].style.display="none";
                    for(j=0;j<letterItems.length;j++) {
                        if(letterItems[j].style.display!="none") {
                            letters[i].style.display="";
                            break;
                        }
                    }
                }
                
            }
        </script>
</head>
	<body>
        <nav>
            Zoek: <input id="zoek" placeholder="Zoekwaarde" onkeyup="dofilter(this);">
            <ul>
                    <li>
                    <h1>A</h1>
                    <ul>
                        <li><a href="#">A1</a></li><li><a href="#">A2</a></li><li><a href="#">A3</a></li><li><a href="#">A4</a></li><li><a href="#">A5</a></li><li><a href="#">A6</a></li><li><a href="#">A7</a></li><li><a href="#">A8</a></li><li><a href="#">A9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>B</h1>
                    <ul>
                        <li><a href="#">B1</a></li><li><a href="#">B2</a></li><li><a href="#">B3</a></li><li><a href="#">B4</a></li><li><a href="#">B5</a></li><li><a href="#">B6</a></li><li><a href="#">B7</a></li><li><a href="#">B8</a></li><li><a href="#">B9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>C</h1>
                    <ul>
                        <li><a href="#">C1</a></li><li><a href="#">C2</a></li><li><a href="#">C3</a></li><li><a href="#">C4</a></li><li><a href="#">C5</a></li><li><a href="#">C6</a></li><li><a href="#">C7</a></li><li><a href="#">C8</a></li><li><a href="#">C9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>D</h1>
                    <ul>
                        <li><a href="#">D1</a></li><li><a href="#">D2</a></li><li><a href="#">D3</a></li><li><a href="#">D4</a></li><li><a href="#">D5</a></li><li><a href="#">D6</a></li><li><a href="#">D7</a></li><li><a href="#">D8</a></li><li><a href="#">D9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>E</h1>
                    <ul>
                        <li><a href="#">E1</a></li><li><a href="#">E2</a></li><li><a href="#">E3</a></li><li><a href="#">E4</a></li><li><a href="#">E5</a></li><li><a href="#">E6</a></li><li><a href="#">E7</a></li><li><a href="#">E8</a></li><li><a href="#">E9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>F</h1>
                    <ul>
                        <li><a href="#">F1</a></li><li><a href="#">F2</a></li><li><a href="#">F3</a></li><li><a href="#">F4</a></li><li><a href="#">F5</a></li><li><a href="#">F6</a></li><li><a href="#">F7</a></li><li><a href="#">F8</a></li><li><a href="#">F9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>G</h1>
                    <ul>
                        <li><a href="#">G1</a></li><li><a href="#">G2</a></li><li><a href="#">G3</a></li><li><a href="#">G4</a></li><li><a href="#">G5</a></li><li><a href="#">G6</a></li><li><a href="#">G7</a></li><li><a href="#">G8</a></li><li><a href="#">G9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>H</h1>
                    <ul>
                        <li><a href="#">H1</a></li><li><a href="#">H2</a></li><li><a href="#">H3</a></li><li><a href="#">H4</a></li><li><a href="#">H5</a></li><li><a href="#">H6</a></li><li><a href="#">H7</a></li><li><a href="#">H8</a></li><li><a href="#">H9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>I</h1>
                    <ul>
                        <li><a href="#">I1</a></li><li><a href="#">I2</a></li><li><a href="#">I3</a></li><li><a href="#">I4</a></li><li><a href="#">I5</a></li><li><a href="#">I6</a></li><li><a href="#">I7</a></li><li><a href="#">I8</a></li><li><a href="#">I9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>J</h1>
                    <ul>
                        <li><a href="#">J1</a></li><li><a href="#">J2</a></li><li><a href="#">J3</a></li><li><a href="#">J4</a></li><li><a href="#">J5</a></li><li><a href="#">J6</a></li><li><a href="#">J7</a></li><li><a href="#">J8</a></li><li><a href="#">J9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>K</h1>
                    <ul>
                        <li><a href="#">K1</a></li><li><a href="#">K2</a></li><li><a href="#">K3</a></li><li><a href="#">K4</a></li><li><a href="#">K5</a></li><li><a href="#">K6</a></li><li><a href="#">K7</a></li><li><a href="#">K8</a></li><li><a href="#">K9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>L</h1>
                    <ul>
                        <li><a href="#">L1</a></li><li><a href="#">L2</a></li><li><a href="#">L3</a></li><li><a href="#">L4</a></li><li><a href="#">L5</a></li><li><a href="#">L6</a></li><li><a href="#">L7</a></li><li><a href="#">L8</a></li><li><a href="#">L9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>M</h1>
                    <ul>
                        <li><a href="#">M1</a></li><li><a href="#">M2</a></li><li><a href="#">M3</a></li><li><a href="#">M4</a></li><li><a href="#">M5</a></li><li><a href="#">M6</a></li><li><a href="#">M7</a></li><li><a href="#">M8</a></li><li><a href="#">M9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>N</h1>
                    <ul>
                        <li><a href="#">N1</a></li><li><a href="#">N2</a></li><li><a href="#">N3</a></li><li><a href="#">N4</a></li><li><a href="#">N5</a></li><li><a href="#">N6</a></li><li><a href="#">N7</a></li><li><a href="#">N8</a></li><li><a href="#">N9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>O</h1>
                    <ul>
                        <li><a href="#">O1</a></li><li><a href="#">O2</a></li><li><a href="#">O3</a></li><li><a href="#">O4</a></li><li><a href="#">O5</a></li><li><a href="#">O6</a></li><li><a href="#">O7</a></li><li><a href="#">O8</a></li><li><a href="#">O9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>P</h1>
                    <ul>
                        <li><a href="#">P1</a></li><li><a href="#">P2</a></li><li><a href="#">P3</a></li><li><a href="#">P4</a></li><li><a href="#">P5</a></li><li><a href="#">P6</a></li><li><a href="#">P7</a></li><li><a href="#">P8</a></li><li><a href="#">P9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>Q</h1>
                    <ul>
                        <li><a href="#">Q1</a></li><li><a href="#">Q2</a></li><li><a href="#">Q3</a></li><li><a href="#">Q4</a></li><li><a href="#">Q5</a></li><li><a href="#">Q6</a></li><li><a href="#">Q7</a></li><li><a href="#">Q8</a></li><li><a href="#">Q9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>R</h1>
                    <ul>
                        <li><a href="#">R1</a></li><li><a href="#">R2</a></li><li><a href="#">R3</a></li><li><a href="#">R4</a></li><li><a href="#">R5</a></li><li><a href="#">R6</a></li><li><a href="#">R7</a></li><li><a href="#">R8</a></li><li><a href="#">R9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>S</h1>
                    <ul>
                        <li><a href="#">S1</a></li><li><a href="#">S2</a></li><li><a href="#">S3</a></li><li><a href="#">S4</a></li><li><a href="#">S5</a></li><li><a href="#">S6</a></li><li><a href="#">S7</a></li><li><a href="#">S8</a></li><li><a href="#">S9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>T</h1>
                    <ul>
                        <li><a href="#">T1</a></li><li><a href="#">T2</a></li><li><a href="#">T3</a></li><li><a href="#">T4</a></li><li><a href="#">T5</a></li><li><a href="#">T6</a></li><li><a href="#">T7</a></li><li><a href="#">T8</a></li><li><a href="#">T9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>U</h1>
                    <ul>
                        <li><a href="#">U1</a></li><li><a href="#">U2</a></li><li><a href="#">U3</a></li><li><a href="#">U4</a></li><li><a href="#">U5</a></li><li><a href="#">U6</a></li><li><a href="#">U7</a></li><li><a href="#">U8</a></li><li><a href="#">U9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>V</h1>
                    <ul>
                        <li><a href="#">V1</a></li><li><a href="#">V2</a></li><li><a href="#">V3</a></li><li><a href="#">V4</a></li><li><a href="#">V5</a></li><li><a href="#">V6</a></li><li><a href="#">V7</a></li><li><a href="#">V8</a></li><li><a href="#">V9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>W</h1>
                    <ul>
                        <li><a href="#">W1</a></li><li><a href="#">W2</a></li><li><a href="#">W3</a></li><li><a href="#">W4</a></li><li><a href="#">W5</a></li><li><a href="#">W6</a></li><li><a href="#">W7</a></li><li><a href="#">W8</a></li><li><a href="#">W9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>X</h1>
                    <ul>
                        <li><a href="#">X1</a></li><li><a href="#">X2</a></li><li><a href="#">X3</a></li><li><a href="#">X4</a></li><li><a href="#">X5</a></li><li><a href="#">X6</a></li><li><a href="#">X7</a></li><li><a href="#">X8</a></li><li><a href="#">X9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>Y</h1>
                    <ul>
                        <li><a href="#">Y1</a></li><li><a href="#">Y2</a></li><li><a href="#">Y3</a></li><li><a href="#">Y4</a></li><li><a href="#">Y5</a></li><li><a href="#">Y6</a></li><li><a href="#">Y7</a></li><li><a href="#">Y8</a></li><li><a href="#">Y9</a></li>
                    </ul>
                </li>
                <li>
                    <h1>Z</h1>
                    <ul>
                        <li><a href="#">Z1</a></li><li><a href="#">Z2</a></li><li><a href="#">Z3</a></li><li><a href="#">Z4</a></li><li><a href="#">Z5</a></li><li><a href="#">Z6</a></li><li><a href="#">Z7</a></li><li><a href="#">Z8</a></li><li><a href="#">Z9</a></li>
                    </ul>
                </li>
            </ul>
        </nav>
	</body>
</html>


Jan
Geweldig Jan!!! Precies wat ik bedoel! Ontzettend bedankt voor jou hulp! #helegroteblij
Indien je ook gebruik maakt van PHP of een andere serverside scriptingtaal kan het bovenstaande fragment een stuk korter. Regel 54 t/m 209 is veelal hetzelfde.
Zo had ik het ook gemaakt :)

Reageren