Reputation: 1866
I need to implement a function that returns the first element the has Id attribute that contains a certain string.
in HAP I used to implement it as follows:
protected HtmlNode GetElementByIdPattern(string pattern)
{
return doc
.DocumentNode
.Descendants()
.FirstOrDefault(e => e.Attributes["id"] != null && e.Attributes["id"].Value.Contains(pattern));
}
How do I loop over all elements in CsQuery?
Upvotes: 0
Views: 1045
Reputation: 1866
The solution is:
protected static CQ GetElementByIdPattern(CQ doc, string contains)
{
string select = string.Format("*[id*={0}]", contains);
return doc.Select(select).First();
}
Based on the jQuery syntax: $('[id=contains]: first')
Upvotes: 2
Reputation: 503
function CQ test(string contains, string selector)
{
CsQuery.CQ page="<div id="test first"></div>";
return page[selector+"[id*="+contains+"]:first"];
}
It's will return a CQ object you can manipulate with it as you want.
Upvotes: 0