FirstChildSelector
The nth-child selector.
using AngleSharp.Css;
using System;
namespace AngleSharp.Dom.Css
{
internal sealed class FirstChildSelector : ChildSelector
{
public FirstChildSelector()
: base(PseudoClassNames.NthChild)
{
}
public override bool Match(IElement element)
{
IElement parentElement = element.ParentElement;
if (parentElement != null) {
int num = Math.Sign(_step);
int num2 = 0;
for (int i = 0; i < parentElement.ChildNodes.Length; i++) {
IElement element2 = parentElement.ChildNodes[i] as IElement;
if (element2 != null && _kind.Match(element2)) {
num2++;
if (element2 == element) {
int num3 = num2 - _offset;
if (num3 != 0) {
if (Math.Sign(num3) == num)
return num3 % _step == 0;
return false;
}
return true;
}
}
}
}
return false;
}
}
}