mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 09:38:11 +00:00
LibWeb: Implement HTMLTableSectionElement::deleteRow()
This commit is contained in:
parent
009588eb28
commit
cc2e08d9e9
3 changed files with 24 additions and 0 deletions
|
@ -59,4 +59,26 @@ DOM::ExceptionOr<NonnullRefPtr<HTMLTableRowElement>> HTMLTableSectionElement::in
|
||||||
return table_row;
|
return table_row;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://html.spec.whatwg.org/multipage/tables.html#dom-tbody-deleterow
|
||||||
|
DOM::ExceptionOr<void> HTMLTableSectionElement::delete_row(long index)
|
||||||
|
{
|
||||||
|
auto rows_collection = rows();
|
||||||
|
auto rows_collection_size = static_cast<long>(rows_collection->length());
|
||||||
|
|
||||||
|
// 1. If index is less than −1 or greater than or equal to the number of elements in the rows collection, then throw an "IndexSizeError" DOMException.
|
||||||
|
if (index < -1 || index >= rows_collection_size)
|
||||||
|
return DOM::IndexSizeError::create("Index is negative or greater than or equal to the number of rows");
|
||||||
|
|
||||||
|
// 2. If index is −1, then remove the last element in the rows collection from this element, or do nothing if the rows collection is empty.
|
||||||
|
if (index == -1) {
|
||||||
|
if (rows_collection_size > 0)
|
||||||
|
rows_collection->item(rows_collection_size - 1)->remove();
|
||||||
|
}
|
||||||
|
// 3. Otherwise, remove the indexth element in the rows collection from this element.
|
||||||
|
else {
|
||||||
|
rows_collection->item(index)->remove();
|
||||||
|
}
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ public:
|
||||||
|
|
||||||
NonnullRefPtr<DOM::HTMLCollection> rows() const;
|
NonnullRefPtr<DOM::HTMLCollection> rows() const;
|
||||||
DOM::ExceptionOr<NonnullRefPtr<HTMLTableRowElement>> insert_row(long index);
|
DOM::ExceptionOr<NonnullRefPtr<HTMLTableRowElement>> insert_row(long index);
|
||||||
|
DOM::ExceptionOr<void> delete_row(long index);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,5 +11,6 @@ interface HTMLTableSectionElement : HTMLElement {
|
||||||
|
|
||||||
[SameObject] readonly attribute HTMLCollection rows;
|
[SameObject] readonly attribute HTMLCollection rows;
|
||||||
HTMLTableRowElement insertRow(optional long index = -1);
|
HTMLTableRowElement insertRow(optional long index = -1);
|
||||||
|
undefined deleteRow(long index);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue