[JS] chileNodes

0

Próbuje nadać dzieciom styl display=none. Co robie źle?

function hideALL()
{
    all = document.getElementById('menu_t');
    children = all.childNodes;
    for (var i = 0; i < children.length; i++) 
    {
        children[i].getElementsByTagName("div").style.display = "none";
    }
}

błąd

Błąd: children[i].getElementsByTagName("div").style has no properties
Plik źródłowy: http://antykomornik.pl/test/js.js
Wiersz: 15
0

Bez sprawdzania, ale getElementsByTagName() zwraca Ci kolekcję, a kolekcja nie ma atrybutu style.

0

co w takim przypadku zrobic? chce ukryc diva a mam go w drzewie tak zapisanego

<ul>
{foreach from = $data item=depart}
    <li>
<div class="t_m">   

    <a href="{if $depart.main.url!=""}http://{$depart.main.url}" target="_blank"{elseif $depart.main.content!=""}index.php?id={$depart.main.id}"{else}javascript:void(0)" onmouseover="show({$depart.main.id})"{/if}>{$depart.main.name}</a>    
    <div id="menu{$depart.main.id}" class="t_p" style="display:none">
    {foreach from = $depart.more item=dep}
        <nobr>-&nbsp;<a href="{if $dep.url!=""}http://{$dep.url}" target="_blank"{else}index.php?id={$dep.id}"{/if}>{$dep.name}</a></nobr>
    {/foreach}
    </div>

</div>
    </li>
{/foreach}
</ul>
0

no jak chcesz nadać styl dzieciom to wywalasz to getElementsByTagName("div"). a jeśli chcesz nadać styl divom których rodzicami są dzieci to robisz identyczną podpętlę:

function hideALL()
{
    all = document.getElementById('menu_t');
    children = all.childNodes;
    for (var i = 0; i < children.length; i++) 
    {
        childrenDivs = children[i].getElementsByTagName('div');
        for (var j = 0; j < childrenDivs.length; j++)
        {
            childrenDivs[j].style.display = "none";
        }
    }
}
0

no tak tyle ze funkcja zbiera wszystkie divy do koszyka które napotka nawet te wyzej co są znikło mi całe menu oprócz diva "menu_t", poradziłam sobie poprzez sprawdzenie czy klasa równa sie "t_p" ale myśle ze to kulawe rozwiązanie :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0