css szülő elem keresése
Üdv!
Az akarom elérni css, esetleg sima js (nem jquery stb) használatával, hogy egy adott elem x-edik szülőjének (parent) változtathassam a paramétereit.
A felépítés valami ilyesmi:Tudni kell: nem minden .story-ban van /sajt-ra mutató link.
Amelyikekben VAN, ott el akarom rejteni az egész .story-t (display:none).
Miként lehet ezt kivitelezni a fent írtak használatával?
■ Az akarom elérni css, esetleg sima js (nem jquery stb) használatával, hogy egy adott elem x-edik szülőjének (parent) változtathassam a paramétereit.
A felépítés valami ilyesmi:
<div class='story'>
<div class='av'></div>
<div class='container'>
<h1>Story neve</h1>
<p>Blah blah blah</p>
<a href='/sajt'>Sajt</a>
</div>
</div>
Amelyikekben VAN, ott el akarom rejteni az egész .story-t (display:none).
Miként lehet ezt kivitelezni a fent írtak használatával?
var stories =
Egy kisebb átalakítással
Félig off
getElementsByClassName()
-től mindig futkározik a hátamon a szőr. Mint mérnök rendkívül pongyolának találom a megfogalmazást, hisz aclass
attribútum végső soron az elem kinézetéért felelős, ebben az esetben viszont – alternatíva híján – egy bizonyos típus megjelelölésére használjuk. Olyan, mintha bemennék egy elektromos szaküzletbe, és mondanám az eladónak, hogy "adjon már egy olyan nagy, piros, kerek dugaljat!", ő pedig visszakérdezne, hogy "380 voltosra gondol?".Szerintem a célra sokkal jobban megfelel a
querySelectorAll()
, bár megvan az a hátránya, hogy csak azután használható, hogy a dokumentum renderelése már befejeződött.W3C QA Tip
http://www.w3.org/html/wg/drafts/html/master/dom.html#classes
http://www.w3.org/QA/Tips/goodclassnames
Abban nem vagyok biztos, hogy a fejlesztők egymással/önmagukkal való kommunikációjának megsegítésén túl (és esetleg a kiemelt, "az ritkábban változik") van-e konkrét haszna, de nekem már ez is elég, illetve pl. a smacss -ben vázoltakkal szép összhangban van.
Google szintén említést tesz erről a témáról a web semantics doksijában, de csak nehezen megfogható érveket hoz fel mint a "It’s the professional thing to do." illetve megemlítik, hogy "It's more accessible" de nem látom, hogy ezt jobban kifejtenék.
Ennyi erővel kivehették volna
id
attribútumot, hogy használjunk helyetteclass
-t, ennyivel is egyszerűbb lehetne a kód.Bár kiváltható az id
A class-nak semmi köze nincs a megjelenítéshez, hiszen önmagában semmilyen információt nem hordoz a böngésző számára az elem megjelenéséről. Lehet persze rá CSS szabályokat írni, de sok más dologra is lehet.
var nodeList =
Bocs
document.evaluate()
-re gondoltam aquerySelectorAll
helyett.for (var i in elemek) {
elemek[i].style.display = 'none';
}
Teljesen Off
És mi a baj azzal, ha én a nagy piros dugaljak közt akarok keresgélni? (
class
attribútum.)Mondjuk pont arra van szükségem, hogy megtaláljam köztük a 400V-os, 5 pólusút...
Szerk.: Ja, és a villanyászásból az áramot ki is hagytam: 16, 32, 63, 120, ... Amperesek.
Esetleg
Tisztán CSS-ben ez sajnos (jelenleg) nem megoldható (nem tudod kiválasztani, hogy egy szabály teljesülése esetén az melyik elemre vonatkozzon). Majd a CSS4-ben talán.