removeNodeWhere method

void removeNodeWhere(
  1. bool test(
    1. Node node
    )
)

Implementation

void removeNodeWhere(bool Function(Node node) test) {
  final childNodes = this.childNodes;

  for (var i = 0; i < childNodes.length;) {
    var node = childNodes.item(i)!;
    if (test(node)) {
      final prevLength = childNodes.length;
      if (node.isA<Element>()) {
        (node as Element).remove();
      } else {
        removeChild(node);
      }
      assert(childNodes.length == prevLength - 1);
    } else {
      ++i;
    }
  }
}