按URL过滤可执行文件?

时间:2014-09-26 12:50:33

标签: javascript filtering

我有一个按类别编号过滤数据的过滤系统,

我可以过滤那些不是点击按钮,而是直接使用类似" domain.com/?data-filter = 2" ???

            $('[data-sort-name]').click(function() {
                var name = $(this).attr('data-sort-name');
                var type = $(this).attr('data-sort-type');
                console.log(name + ' ' + type)

                $('#main>a').sortElements(function(a, b) {
                    var av, bv;
                    av = ($(a).attr('data-' + name));
                    bv = ($(b).attr('data-' + name));
                    console.log(av + '///' + bv);
                    return (
                            isNaN(av) || isNaN(bv) ?
                            av >= bv : +av >= +bv
                            ) ?
                            type == '>' ? -1 : 1 :
                            type == '>' ? 1 : -1;
                });
            });
            $('[ data-filter]').click(function() {
                $('[ data-filter]').removeClass('active');
                var type = $(this).addClass('active').attr('data-filter');
                if (type == 'all') {
                      $('#main>a').css('display','block');                        
                } else {
                $('#main>a[data-cat]').each(function() {
                    $(this).css('display', $(this).attr('data-cat').indexOf(type) != -1 ? 'block' : 'none')
                })
            }
            });
        });`

这里是#menu

                <div class="menu-button">


                            <a type="button" data-filter="all" class="btn" >ALL</a>
                            <a type="button" data-filter="2" class="btn">Category 1</a>
                            <a type="button" data-filter="3" class="btn">Category 2</a>

                </div>

2 个答案:

答案 0 :(得分:0)

是的,您可以在文档位置读取,这意味着您可以解析查询sting或完整的URL(如果需要)

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

参考:jquery get querystring from URL

编辑:实施:

var $vars = getUrlVars();
//this will emulate a user click on the right filter
$('a[data-filter=' + $vars['data-filter'] + ']').click();

答案 1 :(得分:0)

客户端,您可以使用window.location.search获取?data-filter=2字符串并相应地操作您的文档。

另一种选择是编写JS变量服务器端,例如用PHP:

<script>
    ...
    var myfilter = '<?php print $filter ?>';
    ...
</script>