window.location-string的Javascript开关问题

window.location-string的Javascript开关问题,javascript,switch-statement,window.location,Javascript,Switch Statement,Window.location,我目前正在做一个简单的ipadwebapp测试件,陷入了一个简单的switch语句中,不知怎的,它不起作用; 我想根据javascripts window.location字符串格式化元素。这可能是尴尬的简单修复;但我还是不明白: 或者窗户的位置有什么特别的吗 $(document).ready(function() { path_c = window.location; switch (path_c){ case "http://192.168.1.37/ryba_testground

我目前正在做一个简单的ipadwebapp测试件,陷入了一个简单的switch语句中,不知怎的,它不起作用; 我想根据javascripts window.location字符串格式化元素。这可能是尴尬的简单修复;但我还是不明白: 或者窗户的位置有什么特别的吗

$(document).ready(function() {
path_c = window.location;
switch (path_c){
    case "http://192.168.1.37/ryba_testground/":
    $('#menu-item-22').addClass('current_page_item');
    alert(path_c);
    break;
    case "http://192.168.1.37/ryba_testground/?page_id=7":
    $('#menu-item-21').addClass('current_page_item');
    break; 
    case "http://192.168.1.37/ryba_testground/?page_id=9":
    $('#menu-item-20').addClass('current_page_item');
    break;
    case "http://192.168.1.37/ryba_testground/?page_id=11":
    $('#menu-item-19').addClass('current_page_item');
    break;
}
});

谢谢

我想您需要
窗口.location
对象的
href
属性

path_c = window.location.href;
完整脚本

$(document).ready(function() {
    path_c = window.location.href;

    switch (path_c){
        case "http://192.168.1.37/ryba_testground/":
        $('#menu-item-22').addClass('current_page_item');
        alert(path_c);
        break;
        case "http://192.168.1.37/ryba_testground/?page_id=7":
        $('#menu-item-21').addClass('current_page_item');
        break; 
        case "http://192.168.1.37/ryba_testground/?page_id=9":
        $('#menu-item-20').addClass('current_page_item');
        break;
        case "http://192.168.1.37/ryba_testground/?page_id=11":
        $('#menu-item-19').addClass('current_page_item');
        break;
    }
});

示例:

window.location返回一个location对象,该对象包含有关文档URL的信息,并提供更改该URL的方法。因此,将其更改为:

var path_c = window.location.href;

代码似乎还可以。尝试
警报(window.location.href)
console.log(window.location.href)
,然后您可以准确地检查window.location.href为您测试的每个页面获取的内容。这可能会暴露问题。

您可以使用
window.location.toString()
window.location.href
,甚至可以避免使用带有对象映射和正则表达式的开关来过滤url中的目标:

var page_idMap = {
    '7': '#menu-item-21',
    '9': '#menu-item-20',
    '11': '#menu-item-19'
}
var id = window.location.href.match(/page_id[=]([0-9]+)/i);
if (!id || !page_idMap(id[1])) {
    $('#menu-item-22').addClass('current_page_item');
} else {
    $(page_idMap[id[1]]).addClass('current_page_item');
}
或者窗户的位置有什么特别的吗

$(document).ready(function() {
path_c = window.location;
switch (path_c){
    case "http://192.168.1.37/ryba_testground/":
    $('#menu-item-22').addClass('current_page_item');
    alert(path_c);
    break;
    case "http://192.168.1.37/ryba_testground/?page_id=7":
    $('#menu-item-21').addClass('current_page_item');
    break; 
    case "http://192.168.1.37/ryba_testground/?page_id=9":
    $('#menu-item-20').addClass('current_page_item');
    break;
    case "http://192.168.1.37/ryba_testground/?page_id=11":
    $('#menu-item-19').addClass('current_page_item');
    break;
}
});
它是一个宿主对象,有时行为不可预测。至少,当将其转换为字符串时,它是一个计算结果为
href
的对象,但与
开关
案例相比,这种情况不会发生。使用

var path_c = window.location.href;

是的,它是一个宿主对象。试试
window.location.href
google可能会有所帮助!还有一个调试器。。。。。