我正在尝试重定向浏览器,并在最后添加一个包含元素ID的哈希。然后,在它加载了哈希之后,我想根据哈希中传递的ID处理页面。但是,每当我尝试以$('#'。newHash)或document.getElementById(newHash)的形式获取ID时,它都会以未定义的形式返回。
这是我的代码:
<script type="text/javascript">
if(!document.location.hash && document.location.hash != "#") {
jQuery.ajax({
url: 'index.php',
type: 'get',
data: 'inMain=1',
success: function(results){
document.getElementById('mainBody').innerHTML = results;
document.getElementById('mainHeader').innerHTML = 'Dashboard';
}
});
}
$(document).ready(function() {
// check current window location
var url = $(location).attr('href');
// var hash_id = url.substring(url.indexOf('#') + 1);
hash_id = document.location.hash;
alert(document.location.hash.length);
if (document.location.hash.length > 1) {
activeHash = document.location.hash;
test = document.getElementById(activeHash);
alert("This: " + $('#' + activeHash.href) + " or This" + document.getElementById(activeHash).href);
}
$(function(){
//Handle click events from your selector
$(document.body).on("click", "[id^=navLink]", function(e) {
e.preventDefault();
newHash = "go" + this.id;
window.location = "#" + newHash;
});
});
});
</script>
URL为http://server.com/index.php#destinationId,HTML看起来像这样:
<a id="destinationId" href="/somepage.php">Some Page</a>
谢谢
答案 0 :(得分:0)
好吧,经过一些调整,我发现document.getElementById(activeHash)可以工作,但是$('#'+ activeHash)不能。