繁体   English   中英

从 url 定义 jQuery 变量

[英]Defining jQuery variable from url

我有一个 jQuery 搜索脚本,它使用选项卡让用户定义他们想要使用的搜索类型。 当用户搜索时,会创建一个 URL,类似于 # type / query /。 我需要以某种方式在我的window.location.hash.replace中定义查询词,所以我只剩下 URL 中的搜索类型。 我如何 go 关于将下面示例中的QUERYGOESHERE更改为用户所做的查询? 我希望人们能理解我的问题。

我的 jQuery 脚本是:

$(document).ready(function () {
    $('[id^=type_]').click(function () {
        type = this.id.replace('type_', '');
        $('[id^=type_]').removeClass('selected');
        $('#type_' + type).addClass('selected');
        return false;
    });
    if (window.location.hash != "") {
        url = window.location.hash.replace('#', '').replace('/QUERYGOESHERE/', '');
        $('#type_' + url).click();
    } else {
        $('#type_search').click();
    }
    $('#query').keyup(function () {
        var query = $(this).val();
        var url = '/' + type + '/' + query + '/';
        window.location.hash = '' + type + '/' + query + '/';
        document.title = $(this).val() + ' - My Search Script';
        $('#results').show();
        if (query == '') {
            window.location.hash = '';
            document.title = 'My Search Script';
            $('#results').hide();
        }
        $.ajax({
            type: 'GET',
            url: url,
            dataType: 'html',
            success: function (results) {
                $('#results').html(results);
            }
        });
    });
    var textlength = $('#query').val().length;
    if (textlength <= 0) {
        $('#query').focus();
    } else {
        $('#query').blur();
    }
});

这应该这样做。

var full = window.location.hash.replace('#', '')
var queryType = full.substring(0,full.indexOf("/"))
var query = full.replace(queryType, '');

编辑:更新的代码

if (window.location.hash != "") { 
  var full = window.location.hash.replace('#', ''); 
  var queryType = full.substring(0,full.indexOf("/")); 
  console.log('#type_' + queryType); 
  $('#type_' + queryType).click(); 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM