Is it possible to pass a string into this.template.querySelector
in an effort to dynamically find whatever you're looking for? Here's an example of what I'm referring to.
What I'm trying to avoid:
updateStyling(sectionToggled, isActive){
if(isActive){
switch(sectionToggled){
case 'A':
this.template.querySelector('[data-id="A"]').className = '';
this.template.querySelector('[data-id="A"]').className = 'contentVisible';
break;
case 'B':
this.template.querySelector('[data-id="B"]').className = '';
this.template.querySelector('[data-id="B"]').className = 'contentVisible';
break;
case 'C':
this.template.querySelector('[data-id="C"]').className = '';
this.template.querySelector('[data-id="C"]').className = 'contentVisible';
break;
case 'D':
this.template.querySelector('[data-id="D"]').className = '';
this.template.querySelector('[data-id="D"]').className = 'contentVisible';
break;
default:
}
} else { (etc...) }
...
What I want to do (but isn't working)
updateStyling(sectionToggled, isActive){
let querySelector = '[data-id="' + sectionToggled + '"]';
if(isActive){
this.template.querySelector(querySelector).className = '';
this.template.querySelector(querySelector).className = 'contentVisible';
} else {
this.template.querySelector(querySelector).className = '';
this.template.querySelector(querySelector).className = 'contentHidden';
}
}
sidenote - console.log(typeof sectionToggled)
= string
thanks in advance if anyone has suggestions!
if:true
orif:false
directives to conditionally render DOM elements? developer.salesforce.com/docs/component-library/documentation/… – pchittum Sep 4 '20 at 13:45