在获取哈希等于数据属性时有点困惑。所以,如果url.com/#house-2然后它将触发点击测试2.你如何通过jquery获得它? http://jsfiddle.net/ar1bd4bj/7/
<ul class="list">
<li>
<a data-loc="house" href="#">test</a>
</li>
<li>
<a data-loc="house-2" href="#">test2</a>
</li>
<li>
<a data-loc="house-3" href="#">test3</a>
</li>
</ul>
<script>
$(window).load(function() {
if (window.location.hash === data('loc')) {
setTimeout(function() {
$('this').trigger('click');
},1);
}
});
</script>
答案 0 :(得分:1)
您可以使用attribute equals
选择目标a
元素并触发.click()
这样的内容;
$('.list a[data-loc="' + window.location.hash.replace('#', '') + '"]').trigger('click');
如果您的HTML包含data-loc
个属性,则可以使用。但是,如果通过jQuery .data()
函数添加数据,它将无法工作。
答案 1 :(得分:0)
您可以使用filter()
按data-loc
属性查找所需元素。试试这个:
var fragment = window.location.hash;
if (fragment) {
fragment = fragment.substr(1);
$('.list a').filter(function() {
return $(this).data('loc') == fragment;
}).click();
}