Удалить все child элементы содержащие mrk + номер

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* Имеем html вида:
*
* <div id="elem">
* <div id="stat"></div>
* <div id="mrk0"></div>
* <div id="mrk1"></div>
* </div>
*
* Надо было мне из элемента удалить все child элементы по атрибуту id содержащему mrk и число,
* сначала пытался через for и childNodes[#], но удаляя элемент, сдвигался весь NodeList.
* Так же пробовал через while(elem.hasChildNodes()) в котором использовал elem.removeChild(elem.lastChild),
* но оно удаляло всё и добавить в этот цикл исключение было проблематично.
* В итоге пришёл к такому способу =)
*/
var elem = document.getElementById("elem");
var el = elem.firstChild;
while (el) {
var next = el.nextSibling;
if (/mrk(\d+)/.test(el.id)) {
elem.removeChild(el);
}
el = next;
}