我有以下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。
答案 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;
}
}
这就是魔术!