我有一个带有引导程序选项卡的页面,我想从外部页面进行链接。因此,我可以立即访问自己感兴趣的内容。

即使我读了很多问题,也无法真正达到目标。我已经写了这段对我不起作用的代码:

var hash = document.location.hash;
if (hash) {
    $('.nav-tabs a[href='+hash+']').tab('show');
}
// Change hash for page-reload
$('.nav-tabs a').on('shown.bs.tab', function (e) {
    window.location.hash = e.target.hash;
});


我的HTML如下

<ul id="profile-tabs" class="nav-tabs">
    <li class="active"><a href="<?php echo get_permalink(); ?>#general-informations" data-toggle="tab"><?php _e("General Info",'Mytheme');?></a></li>
    <li class=""><a href="<?php echo get_permalink(); ?>#other" data-toggle="tab"><?php _e("Other",'Mytheme');?></a></li>
</ul>


我在想,也许我以错误的方式使用.hash。您能帮我还是建议类似的答案?我的意思是我读过几乎所有没有成功的书。
谢谢。

最佳答案

您的CSS选择器不正确。您正在尝试搭配苹果和桔子。

如果第一个锚标记的href属性设置为http://localhost/somehwhere/#general-informations,并且URL栏以#general-informations结尾,那么CSS选择器a[href='+hash+']将尝试直接匹配。不幸的是,字符串http://localhost/somehwhere/#general-informations不等于字符串#general-informations

您想要的是CSS以选择器$=结尾,请使用以下代码:

$('.nav-tabs a[href$="'+hash+'"]').tab('show');


这将选择所有带有href属性(以hash变量的值结尾)的锚标记。

10-07 13:40