0

我是来解决3个问题的。我知道,javascript可以修复它。但是,我不太了解javascript。所以,我需要你的帮助。

(1)我必须强制使“div C”的元素“class dropdown”父div。例如,这是结构:

<div class="A">
  <ul>
     <li class="dropdown"><a href="#">About</li>
     <li><a href="#">About</li>
     <li><a href="#">About</li>
  </ul>
</div>
<div class="B"></div>
<div class="C"></div>

我知道,一两行javascript代码就可以了。但是,我不知道代码。那么,将 li.dropdown 设置为“div C”的父级的 javascript 代码是什么?

(2) 如何通过onclick 选项关闭一个div?比如结构:

<a href="#" class="collapse"></a>
<div class="main-nav"></div>

默认情况下,main-nav 是display: none当任何人点击折叠链接时,main-nav div 将被打开。当人们再次点击折叠链接时,主导航将再次关闭。我可以通过 javascript 打开主导航。但是,我无法关闭它。我试过这样:

for(var a=0; a<document.getElementsByClassName('collapse').length; a++){
    document.getElementsByClassName('collapse')[a].onclick = function(){
        var mainNav = this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.getElementsByClassName('main-nav')[0]
        if(mainNav.style.display = 'none')
            mainNav.style.display = 'block';
        else
            mainNav.style.display = 'none';
    }
}

我认为在下面的行中存在问题。请帮我修复它。

if(mainNav.style.display = 'none')
                mainNav.style.display = 'block';
            else
                mainNav.style.display = 'none';

(3) 如何通过javascript更改背景。就像一个 div 是这样定义的:

.main-nav li.dropdown a {
    background: url(../images/nav-arrow.png) 70% center no-repeat;  
}

当人们点击它时,我想更改背景图像。我已经尝试过以下方式。但是,它不会工作:(

for(var a=0; a<document.getElementsByClassName('dropdown').length; a++){
    document.getElementsByClassName('dropdown')[a].onclick = function(){
        var innerSubmenu = this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.getElementsByClassName('inner-submenu')[0]
        dropdown.backgroundImage = 'url(../images/nav-arrow-hover.png)';
        if(innerSubmenu.style.display = 'none')
            innerSubmenu.style.display = 'block';
        else
            innerSubmenu.style.display = 'none';
    }
}

可能是,这一行的问题:

dropdown.backgroundImage = 'url(../images/nav-arrow-hover.png)';
4

1 回答 1

0

这些问题完全不相关,我相信您应该将它们作为单独的问题发布。无论如何,这是我的答案:

(1) - 假设每个类都有一个元素

document.querySelector('.C').appendChild(document.querySelector('.dropdown'));

(2)

if(mainNav.style.display != 'block')
        mainNav.style.display = 'block';
    else
        mainNav.style.display = 'none';

(3)

dropdown.style.backgroundImage = 'url(../images/nav-arrow-hover.png)';
于 2013-08-23T16:26:52.937 回答