JSFiddle - React, Tailwind, and code Playground
HTML
<body>
<p>Напишите код, который реализует следующую логику. Имеется произвольное число списков ul с произвольным числом элементов внутри. У каждого элемента может быть разное содержание. Необходимо удалить элементы, порядковый номер которых делится на 4 с остатком
3, если внутри элемента нет текста, включающего подстроку "question more". При этом подстроку "question more", найденную в любых элементах, необходимо заменить на "RT question more" со ссылкой на "https://www.rt.com".</p>
</body>
<button onclick="mutation()">редактировать списки</button>
JavaScript
let x = Math.round(Math.random() * 10) + 2,
y,
div = document.createElement('div'),
ul, li;
for (var i = 0; i < x; i++) {
y = Math.round(Math.random() * 10) + 5;
ul = document.createElement('ol');
for (var j = 0; j < y; j++) {
li = document.createElement('li');
Math.round(Math.random()) ? li.innerHTML = 'содержимое' : li.innerHTML = 'why the question more serious';
ul.appendChild(li);
}
div.appendChild(ul)
}
document.body.appendChild(div); // создадим 2-12 списков к каждом из которых 5-15 элементов.
function mutation() {
let elements = document.querySelectorAll('ol');
let str;
elements.forEach(function(itemUl) {
itemUl.querySelectorAll('li').forEach(function(item, i) {
str = item.innerHTML;
num = str.indexOf('question more');
if (~num) item.innerHTML = `${str.slice(0,num)}<a href="https://www.rt.com">RT question more</a> ${str.slice(num + 13)}`
if (i % 4 == 3 && !~num) item.remove();
});
});
};