Loading...
+ Нов въпрос
gbsho avatar gbsho 9 Точки

05. Table - Search Engine - JS Advanced DOM Introduction

// Кода отдолу СИ РАБОТИ (в Mozilla)  16/100 в judge - HELP


function solve() {
    document.querySelector('#searchBtn').addEventListener('click', onClick);
    
    function onClick() {
        let search = document.getElementById("searchField").value
        let data = document.getElementsByTagName("table")[0].rows
        if (search){
            for (i=1;i<data.length;i++){
                document.getElementsByTagName("table")[0].rows[i].removeAttribute("class")
                let tr = data[i]
                let td = tr.children
                for(each of td){
                    if(each.innerHTML.includes(search)){
                        tr.classList.add("select")
                    }
                }
            }
            document.getElementById("searchField").value = ""
        }else{
            let data = document.getElementsByTagName("table")[0].rows
            for (i=1;i<data.length;i++){
                document.getElementsByTagName("table")[0].rows[i].removeAttribute("class")
            }
        }
    }
}

Тагове:
0
JavaScript Advanced 05/10/2022 16:01:27
Axiomatik avatar Axiomatik 2178 Точки

;-)

100% code =>

function solve() {
    document.querySelector('#searchBtn').addEventListener('click', onClick);

    function onClick() {
        let searchElement = document.getElementById('searchField');
        let rowElements = Array.from(document.querySelectorAll('.container tbody tr'));
        let searchText = searchElement.value;

        // After every search ("Search" button is clicked), 
        // remove all already selected classes (if any) from the previous search, 
        // for the new search to contain only the new result.
        rowElements.forEach(row => {
            row.className = '';
        });

        // If any of the rows contain the submitted string, 
        // add a class select to that row. Note that more than one row may contain the given string. 
        let filteredRows = rowElements.filter(row => {
            let values = Array.from(row.children);

            if (values.some(td => td.textContent.includes(searchText))) {
                row.className = 'select';
            }
        });

        // After every search ("Search" button is clicked), clear the input field
        searchElement.value = '';
    }
}

 

0
gbsho avatar gbsho 9 Точки

Елегантно! Благодаря!

1
06/10/2022 08:09:01
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.