add EvalJs on Sibling, EvalJs on Children, EvalJs on Parent
This commit is contained in:
parent
3337869c0d
commit
50b86007cf
2 changed files with 37 additions and 24 deletions
|
|
@ -186,45 +186,55 @@ func ToggleClassOnElement(selector, class string) ComplexJsCommand {
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetClassOnChildren(selector, class string) ComplexJsCommand {
|
func EvalJsOnParent(js string) ComplexJsCommand {
|
||||||
// language=JavaScript
|
// language=JavaScript
|
||||||
return EvalJs(fmt.Sprintf(`
|
return EvalJs(fmt.Sprintf(`
|
||||||
var children = self.querySelectorAll('%s');
|
if(!self.parentElement) { return; }
|
||||||
children.forEach(function(child) {
|
let element = self.parentElement;
|
||||||
child.classList.add('%s');
|
%s
|
||||||
|
`, js))
|
||||||
|
}
|
||||||
|
|
||||||
|
func EvalJsOnChildren(selector, js string) ComplexJsCommand {
|
||||||
|
// language=JavaScript
|
||||||
|
return EvalJs(fmt.Sprintf(`
|
||||||
|
let children = self.querySelectorAll('%s');
|
||||||
|
children.forEach(function(element) {
|
||||||
|
%s
|
||||||
});
|
});
|
||||||
`, selector, class))
|
`, selector, js))
|
||||||
|
}
|
||||||
|
|
||||||
|
func EvalJsOnSibling(selector, js string) ComplexJsCommand {
|
||||||
|
// language=JavaScript
|
||||||
|
return EvalJs(fmt.Sprintf(`
|
||||||
|
if(!self.parentElement) { return; }
|
||||||
|
let siblings = self.parentElement.querySelectorAll('%s');
|
||||||
|
siblings.forEach(function(element) {
|
||||||
|
%s
|
||||||
|
});
|
||||||
|
`, selector, js))
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetClassOnChildren(selector, class string) ComplexJsCommand {
|
||||||
|
// language=JavaScript
|
||||||
|
return EvalJsOnChildren(selector, fmt.Sprintf("element.classList.add('%s')", class))
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetClassOnSibling(selector, class string) ComplexJsCommand {
|
func SetClassOnSibling(selector, class string) ComplexJsCommand {
|
||||||
// language=JavaScript
|
// language=JavaScript
|
||||||
return EvalJs(fmt.Sprintf(`
|
return EvalJsOnSibling(selector, fmt.Sprintf("element.classList.add('%s')", class))
|
||||||
var siblings = self.parentElement.querySelectorAll('%s');
|
|
||||||
siblings.forEach(function(sibling) {
|
|
||||||
sibling.classList.remove('%s');
|
|
||||||
});
|
|
||||||
self.classList.add('%s');
|
|
||||||
`, selector, class, class))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func RemoveClassOnSibling(selector, class string) ComplexJsCommand {
|
func RemoveClassOnSibling(selector, class string) ComplexJsCommand {
|
||||||
// language=JavaScript
|
// language=JavaScript
|
||||||
return EvalJs(fmt.Sprintf(`
|
return EvalJsOnSibling(selector, fmt.Sprintf("element.classList.remove('%s')", class))
|
||||||
var siblings = self.parentElement.querySelectorAll('%s');
|
|
||||||
siblings.forEach(function(sibling) {
|
|
||||||
sibling.classList.remove('%s');
|
|
||||||
});
|
|
||||||
`, selector, class))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func RemoveClassOnChildren(selector, class string) ComplexJsCommand {
|
func RemoveClassOnChildren(selector, class string) ComplexJsCommand {
|
||||||
// language=JavaScript
|
// language=JavaScript
|
||||||
return EvalJs(fmt.Sprintf(`
|
return EvalJsOnChildren(selector, fmt.Sprintf("element.classList.remove('%s')", class))
|
||||||
var children = self.querySelectorAll('%s');
|
|
||||||
children.forEach(function(child) {
|
|
||||||
child.classList.remove('%s');
|
|
||||||
});
|
|
||||||
`, selector, class))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Alert(text string) SimpleJsCommand {
|
func Alert(text string) SimpleJsCommand {
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,9 @@ var RemoveClass = h.RemoveClass
|
||||||
var Alert = h.Alert
|
var Alert = h.Alert
|
||||||
var SetClassOnChildren = h.SetClassOnChildren
|
var SetClassOnChildren = h.SetClassOnChildren
|
||||||
var RemoveClassOnChildren = h.RemoveClassOnChildren
|
var RemoveClassOnChildren = h.RemoveClassOnChildren
|
||||||
|
var EvalJsOnChildren = h.EvalJsOnChildren
|
||||||
|
var EvalJsOnSibling = h.EvalJsOnSibling
|
||||||
|
var EvalJsOnParent = h.EvalJsOnParent
|
||||||
var SetClassOnSibling = h.SetClassOnSibling
|
var SetClassOnSibling = h.SetClassOnSibling
|
||||||
var RemoveClassOnSibling = h.RemoveClassOnSibling
|
var RemoveClassOnSibling = h.RemoveClassOnSibling
|
||||||
var Remove = h.Remove
|
var Remove = h.Remove
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue