Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery筛选器URL_Jquery_Url_Filter - Fatal编程技术网

Jquery筛选器URL

Jquery筛选器URL,jquery,url,filter,Jquery,Url,Filter,我认为我走对了方向,但我需要你的帮助 我使用此代码获取URL参数 function $urlParam(name){ if(window.location.href.indexOf(name) != -1) { var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); return results[1] || 0;

我认为我走对了方向,但我需要你的帮助

我使用此代码获取URL参数

 function $urlParam(name){ 
    if(window.location.href.indexOf(name) != -1) {
        var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 
        return results[1] || 0; 
    }
    return 0;

} 


$(function() {
var $page='#'+$urlParam('id');

 });
然后我试着用

$side_menu.find('> li > a').filter($page).click();
但这不起作用

我可以做些什么,以便使用$page变量筛选数据

如果您需要更多的数据,我很乐意提供给您

提前谢谢大家,,
Prokka

好的,首先,而不是:

window.location.href window.location.href 您不妨使用:

window.location.search window.location.search 因为这只是URL的参数部分(您想要的部分)。此外,您的变量:

$page $page 。。。“$foo”变量命名约定通常用于jQuery对象变量。换言之:

var foo = "foo"; var $foo = $(foo); var foo=“foo”; 变量$foo=$(foo); 所以(除非你们有自己不同的约定),我认为“$page”应该被命名为page

至于:

$side_menu.find('> li > a').filter($page).click(); $side_菜单。查找('>li>a')。筛选($page)。单击(); 我不能确定,但看起来你在用身份证过滤,对吗?如果是这样,过滤器就没有意义了;根据定义,ID在页面上是唯一的,因此只需执行以下操作:

$($page).click(); $($页)。单击(); 是完全一样的(甚至在性能方面)

但这不起作用。 我可以做些什么,以便使用$page变量筛选数据

如果不知道页面变量的值,很难说。我建议添加以下内容:

console.log($page); $side_menu.find('> li > a').filter($page).click(); 控制台日志($page); $side_菜单。查找('>li>a')。筛选($page)。单击(); 如果您使用的是Firebug或带有控制台的浏览器(如果不是,您应该使用Firebug;-),但您也可以将其更改为“警报($page)”)

当您这样做时,您应该看到您真正使用的选择器。很可能是出了什么问题。如果看不到任何明显的内容,请尝试添加:

console.log($page); console.log($($page)); $side_menu.find('> li > a').filter($page).click(); 控制台日志($page);console.log($($page)); $side_菜单。查找('>li>a')。筛选($page)。单击(); (警报技巧对这个不起作用)。这将显示jQuery使用选择器选择了哪些元素(如果有)。在这和检查选择器本身之间,您可能会发现问题(如果没有,可能尝试在Firebug控制台中手动运行命令)

类似于:

<script>
// Define event handler generator
function handleClick(url) {
    var location = url;
    return function() {
        window.location = location;
        return false;
    }
}
$(function () { // onReady
    $("A").each(function() { // connect an event handler for every A
        // Generate handler for the correct URL
        var handler = handleClick($(this).attr("href"));
        // Connect generated event handler
        $(this).click(handler);
    });
}
</script>

//定义事件处理程序生成器
函数handleClick(url){
var位置=url;
返回函数(){
window.location=位置;
返回false;
}
}
$(函数(){//onReady
$(“A”).each(function(){//为每个A连接一个事件处理程序
//为正确的URL生成处理程序
var handler=handleClick($(this.attr(“href”);
//连接生成的事件处理程序
$(此)。单击(处理程序);
});
}
应该让您保持现有URL的工作方式(对于非JS用户),但对于其他所有用户,您将触发一个事件,该事件执行相同的操作,但jQuery可调用。

非常感谢大家

最后我发现了我的错误…我在页面加载后定义了页面变量,所以我的脚本不可读

现在看起来是这样的:

     function $urlParam(name){ 
    if(window.location.href.indexOf(name) != -1) {
        var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 
        return results[1] || 0; 
    }
    return 0;


};
然后呢

var page='#'+$urlParam('id');
if (page== '#0')
     strana ='#News';


$side_menu.find('> li > a').filter($(page)).click();
现在几乎所有的东西都工作得很好,除了谷歌Chrome,它只选择标签,不显示内容

关于这个或链接或提出另一个问题有什么提示吗


再次感谢大家,特别是MachineHost!

什么“不起作用”?$page包含正确的id和$side_菜单。find('>li>a')查找元素,但$side_菜单。find('>li>a')。filter($page)不起作用吗?您会发现:)例如,如果我放入.filter('#Link1'),它会起作用,但如果我放入.filter(page),和page='#Link1'什么事都没有发生谢谢你试图帮助我:)不幸的是,如果我只放$($page)。单击();什么也没发生。我还在链接上添加了警报,以找出$page变量的值,这是正确的。此外,我还按照您的建议修复了变量名。再次感谢:)您是如何连接onclick处理程序的?你是做foo还是做$(thatA)。点击(someHandlerFunction)?出于测试目的,我将$(function(){var$strana='#'+$urlParam('id');$(“a.test”)。单击(function(event){alert($strana);});页面加载时应该进行过滤,它在除Google ChromeP.S之外的所有浏览器上都正常工作。我问的原因是我相信jQuery的。click()仅适用于通过.click(someHandler)连接的事件,因此如果使用onclick属性(或其他非jQuery方法)连接事件处理程序,这可能是您的问题。Ohhhhhh…好的,让我解释一下:您不能使用.click()(或任何其他事件调用程序)触发浏览器事件。您可以通过在处理程序中返回false来取消它们,但您不能启动它们(您只能启动jQuery连接的事件)。因此,考虑到这一点,让我重新回答。