Я знаю, что OP искал решение для CSS, но его легко достичь с помощью jQuery. В моем случае мне нужно было найти родительский тег <ul>
для тега <span>
, содержащегося в дочернем <li>
. В jQuery есть селектор :has
, поэтому можно определить родителя с помощью его дочерних элементов:
$("ul:has(#someId)")
выберет элемент ul
, у которого есть дочерний элемент с id someId . Или, чтобы ответить на исходный вопрос, что-то вроде следующего должно сделать трюк (непроверенный):
$("li:has(.active)")
Попробуйте это решение. это работает
func parseData(from json: [String: Any) -> Val {
var a //some values I got from parsing that I NEED for B
var anotherVariable
let group = DispatchGroup()
group.enter()
B(a) { result in
anotherVariable = result
group.leave()
}
group.wait()
var otherVar = anotherVariable[0]
return Val(a, anotherVariable, otherVar) // this is a struct
//returned
}
func B(_ a: a, completion: @escaping ([Res]) -> Void) {
SomeotherFunc(a, completion: { resp in
completion(res)
})
}
Не делай этого.
Пожалуйста, научитесь понимать, как работает асинхронная обработка данных, и добавьте еще один обработчик завершения в parseData
. И вы неправильно используете DispatchGroup
в B
. Как следует из названия, это полезно только для группы асинхронных вызовов, например, в цикле
func parseData(from json: [String: Any], completion: @escaping (Val) -> Void) {
var a //some values I got from parsing that I NEED for B
var anotherVariable
B(a) { result in
anotherVariable = result
completion(Val(a, anotherVariable, anotherVariable[0]))
}
}
func B(_ a: a, completion: @escaping ([Res]) -> Void) {
var res = [Res]()
SomeotherFunc(a) { resp in
res = resp
completion(res)
})
}