From e995b0dcef00ed85ba430723f759ccf9e99c7a83 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Sat, 25 Feb 2023 12:38:29 +0800 Subject: [PATCH] #792@minor: Handle special pseudo selector. --- .../happy-dom/src/query-selector/QuerySelector.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/happy-dom/src/query-selector/QuerySelector.ts b/packages/happy-dom/src/query-selector/QuerySelector.ts index 704f34a56..b424045dc 100644 --- a/packages/happy-dom/src/query-selector/QuerySelector.ts +++ b/packages/happy-dom/src/query-selector/QuerySelector.ts @@ -285,7 +285,17 @@ export default class QuerySelector { } if (parts.length > 0) { - groups.push(parts); + // Handle special pseudo-class selectors, such as: nth-child(2n + 1) + const newParts = []; + for (let i = 0; i < parts.length; i++) { + if (parts[i].includes('(') && parts[i + 1] === '+' && parts[i + 2].includes(')')) { + newParts.push(parts[i] + parts[i + 1] + parts[i + 2]); + i += 2; + } else { + newParts.push(parts[i]); + } + } + groups.push(newParts); } return groups;