HTMLTableRowElement
Represents the HTML tr element.
using AngleSharp.DOM.Collections;
namespace AngleSharp.DOM.Html
{
public sealed class HTMLTableRowElement : HTMLElement
{
internal const string Tag = "tr";
[DOM("align")]
public HorizontalAlignment Align {
get {
return Element.ToEnum(GetAttribute("align"), HorizontalAlignment.Left);
}
set {
SetAttribute("align", value.ToString());
}
}
[DOM("vAlign")]
public VerticalAlignment VAlign {
get {
return Element.ToEnum(GetAttribute("valign"), VerticalAlignment.Middle);
}
set {
SetAttribute("valign", value.ToString());
}
}
[DOM("bgColor")]
public string BgColor {
get {
return GetAttribute("bgcolor");
}
set {
SetAttribute("bgcolor", value);
}
}
[DOM("cells")]
public HTMLCollection Cells {
get {
return _children.QuerySelectorAll("td,th");
}
}
[DOM("rowIndex")]
public int RowIndex {
get {
Element parentElement = base.ParentElement;
while (parentElement != null && !(parentElement is HTMLTableElement)) {
parentElement = parentElement.ParentElement;
}
if (parentElement is HTMLTableElement)
return ((HTMLTableElement)parentElement).Rows.IndexOf(this);
return 0;
}
}
[DOM("sectionRowIndex")]
public int SectionRowIndex {
get {
Element parentElement = base.ParentElement;
while (parentElement != null && !(parentElement is HTMLTableSectionElement)) {
parentElement = parentElement.ParentElement;
}
if (parentElement is HTMLTableSectionElement)
return ((HTMLTableSectionElement)parentElement).Rows.IndexOf(this);
return 0;
}
}
protected internal override bool IsSpecial => true;
internal HTMLTableRowElement()
{
_name = "tr";
}
[DOM("insertCell")]
public HTMLTableCellElement InsertCell(int index)
{
Element element = Cells[index];
HTMLTableCellElement hTMLTableCellElement = base.OwnerDocument.CreateElement("td") as HTMLTableCellElement;
if (element != null)
InsertBefore(hTMLTableCellElement, element);
else
AppendChild(hTMLTableCellElement);
return hTMLTableCellElement;
}
[DOM("deleteCell")]
public HTMLTableRowElement DeleteCell(int index)
{
HTMLCollection cells = Cells;
if (index == -1)
index = cells.Length - 1;
cells[index]?.Remove();
return this;
}
}
}