我想在继续之前尝试检查网址中的哈希值是否包含某个值,我有一个功能如下:
$(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
开头,那么我希望上面的函数被触发,我就是'我甚至不确定这是否可行,任何建议都将不胜感激!
答案 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
}