поиск в Li элементах используя regexp

267
20 декабря 2016, 21:43

я пытаюсь найти li элемент который содержит "javascript" и сделать с ним чтолибо но ничего не работает, буду рад если поможите. html

<span id="search">button</span>
        <ul id="result">
            <li>php</li>
            <li>javascript 1</li>
            <li>ruby</li>
            <li>javascript 2</li>
            <li>java</li>
        </ul>

js

function ready() {
    document.getElementById("search").onclick = function dosearch() {
        var x = document.getElementById("result");
        var items = x.getElementsByTagName("li");
        for (var i = 0; i < items.length; i++) {
            if (/javascript/i.test(items[i].innerHtml)) {
                items[i].style.color = "red";
            }
        }
    }; 
};
document.addEventListener("DOMContentLoaded", ready);
Answer 1

Вы проверяете регуляркой не строчку, а DOM ноду.
В результате получается /javascript/i.test(страннаяФигняАНеСтрочкаСТекстом);
Содержимое из dom ноды можно получить в данном случае с помощью innerHTML.
Например так:

/javascript/i.test(items[i].innerHTML);

Ну и да, у вас опечатки в html: javasctipt вместо javascript

Answer 2

document.querySelector("#search").addEventListener('click', e => { 
  let allowed = Array.from(document.querySelectorAll('#result > li')).filter(i => /javascript/i.test(i.innerHTML)); 
  console.info(allowed); 
});
<span id="search">button</span> 
        <ul id="result"> 
            <li>php</li> 
            <li>javascript 1</li> 
            <li>ruby</li> 
            <li>javasctipt 2</li> 
            <li>java</li> 
        </ul>

READ ALSO
Странное поведение при transform

Странное поведение при transform

Вот ссылка на код с работающим примером: http://codepenio/Bimbam/pen/rWPbpe

265
Обработка символов &#39;\| в URL по средствам JS

Обработка символов '\| в URL по средствам JS

Есть клиенская сторона на JSДля оправки данных на сервер использую AJAX

273
Подгрузка и чтение локального XML при помощи JS

Подгрузка и чтение локального XML при помощи JS

В настоящий момент, из-за политики хромиума, нельзя подгружать локальные файлы через ajax без аргумента «--allow-file-access-from-files»Но мне в текущий...

360