jquery更改显示模式

时间:2013-03-23 18:27:09

标签: javascript jquery css

我有以下html文件,其中包含一些div元素,每个元素都有id和class。我创建了分配给每个选项卡的选项卡和页面。问题是遍历每个父div以将子div的显示设置为不同的类,并使单击的选项卡更改它的背景。

我尝试了以下内容:

 function MakeActiveTab(CurrentPage, CurrentTab)
  {
    $('#PageID').children().filter(".pageParagraph").css('display','none');
    $('#PageID').children().filter("#" + CurrentPage).css('display', 'block');
    $('#Mainmenu').children().filter(".TabClass").css('background', '#fff');
    $('#Mainmenu').children().filter("#" + CurrentTab).css('background', '#007700;');
  }

但它不起作用!任何想法都表示赞赏。

 <div id='Mainmenu'>
   <div id='menu1' class='TabClass'>
    Tab1
   </div>
   <div id='menu2' class='TabClass'>
    Tab2
   </div>

  </div>

 <div id='PageID'>
       <div id='page1' class='pageParagraph'>
         some content
       </div>

       <div id='page2' class='pageParagraph'>
         some content
       </div>
 </div>

我创建了一个javascript函数,动态地将页面和菜单创建到父div中。这工作正常,但我无法获得当前的Tab。当我用javascript做到这一点时,它可以工作,但不适用于IE8。

2 个答案:

答案 0 :(得分:0)

HTML:

<div class="page first-page-name">
    page 1
    <div class="tab first-tab-name">tab 1</div>
    <div class="tab second-tab-name">tab 2</div>
</div>
<div class="page second-page-name">
    page 2
    <div class="tab first-tab-name">tab 1</div>
    <div class="tab second-tab-name">tab 2</div>
</div>

JS:

function showTabOnPage(tab, page) {
    $('.page').hide().siblings(page).show();
    $('.tab').hide().siblings(tab).show();
}
showTabOnPage('.first-tab-name', '.second-page-name');

查看演示:http://jsfiddle.net/vpetrychuk/3WtyF

如果你的网页结构不一样 - 抱歉。但是我希望你的一般想法能够清楚明白。

答案 1 :(得分:0)

找到了解决方法。感谢。

   refID = document.getElementById('Mainmenu').childNodes;
            for (i = 0; i < refID.length; i++)
            {
                if (refID[i].id == 'TabClass' + objID)
                {
                    MakeActiveTab("TabClass" + objID, "pageParag" + objID);

                    return 0;
                }
            }

这就是魔术!