jQuery:检查hash是否包含

时间:2013-11-10 11:11:06

标签: javascript jquery html hash

我想在继续之前尝试检查网址中的哈希值是否包含某个值,我有一个功能如下:

$(window).load(function () {
    var hash = window.location.hash,
        number = $(hash).index(),
        width = 403,
        final = width * number;
        setTimeout(function () {
        $('.news-inner-wrap').animate({
            'marginLeft': "-=" + final + "px"
        });
        }, 1000);
});

因此,如果散列是www.website.com/#news-item-03,它会将用户水平滑动到第3个新闻故事,这非常有用!我只希望这个函数触发,但是如果哈希包含news-item,那么每个哈希值都会改变,但是如果哈希以news-item开头,那么我希望上面的函数被触发,我就是'我甚至不确定这是否可行,任何建议都将不胜感激!

2 个答案:

答案 0 :(得分:6)

不需要jQuery,这应该很好用

 if (window.location.hash) {
     if (window.location.hash.indexOf('news-item') == 1) { // not 0 because # is first character of window.location.hash
         // it's at the start
     }
     else if (window.location.hash.indexOf('news-item') != -1) {
         // it's there, but not at the start
     }
     else {
         // not there
     }
 }

答案 1 :(得分:3)

使用正则表达式:

var matches = hash.match(/^#news-item-([0-9]+)$/);
if (matches) {
    var number = matches[1];
    // Rest of your code
}