0

我有一个包含页面导航链接的 userControl.htm,我有带有 ID 的页面,我想将“选定”类添加到相应的主页链接。

我认为 var page = (getElementByID("someId")) 会做到这一点,但没有运气。

var page = (getElementByID("someId"))    
switch (page) {
case 'home':
    document.getElementById("About").className = "selected";
    break;
case 'about':
    document.getElementById("About").className = "selected";
    break;
case 'contact':
    document.getElementById("contact").className = "selected";
    break;
case 'services':
    document.getElementById("services").className = "selected";
    break;
default:
    document.getElementById("home").className = "selected";
}

谢谢

4

3 回答 3

2

考虑使用键值映射而不是编写冗余代码:

//value with corresponding, and maybe not 1:1 pair
var pairs = {
  'home' : 'About',
  'about' : 'About',
  'contact' : 'contact',
  'services' : 'services',
  'default' : 'home'
  //you can add as much as you want here
};

//then get your page value
var page = getYourValue();

//page might or might not exist on the pairs list, thus we check
//default to 'default' if non-existent
page = (pairs[page]) ? page : 'default';

//then get from the map the desired value
document.getElementById(pairs[page]).className = "selected";

您可以使用以下任一方法获取正文的 ID:

document.body.id
//or
document.getElementsByTagName('body')[0].id
于 2013-02-10T02:21:30.953 回答
0

只需使用这个:

document.getElementById(page).className = "selected";

而不是那个大的 switch 语句,它只是复制你的字符串值。

于 2013-02-10T02:20:55.433 回答
0

我不得不和jquery一起去

    current_page = document.location.href
if (current_page.match(/index/)) {
    $("#home").addClass("selected");
} else if (current_page.match(/Contact/)) {
    $("#contact").addClass("selected");
} else if (current_page.match(/media/)) {
    $("#media").addClass("selected");
} else if (current_page.match(/About/)) {
    $("#About").addClass("selected");

} else if (current_page.match(/Information/)) {
    $("#information").addClass("selected");
} else { // don't mark any nav links as selected
    $("ul#navigation li").removeClass('selected');
};
于 2013-02-13T04:13:37.503 回答