窗口位置哈希等于数据属性然后触发数据属性

时间:2015-10-12 15:30:58

标签: jquery hash custom-data-attribute

在获取哈希等于数据属性时有点困惑。所以,如果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>

2 个答案:

答案 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(); 
}