如何触发匹配锚点与数据attribure data-vid

时间:2018-02-13 11:22:21

标签: javascript jquery html

我在页面上有几个锚链接,它们具有相同的类但属性data-vid的唯一值。我想触发匹配查询字符串

的匹配链接
<a href="youtube.com/link1" class="video" data-vid="1234"/>
<a href="youtube.com/link2" class="video" data-vid="2345"/>
<a href="youtube.com/link3" class="video" data-vid="3456"/>
<a href="youtube.com/link4" class="video" data-vid="4567"/>

让我们假设我的网页网址为www.domain.com/v=2345

我尝试使用以下代码无效

    if ($(this).attr('data-vid') == '2345')
    {
      $(this).trigger('click');
      // tried also  
      // $('a[data-vid]').trigger('click');
    }

5 个答案:

答案 0 :(得分:1)

$(window).load(function() {
  triggerAnchor(1234);
});

function triggerAnchor(dataVid) {
  $('.video').filter('[data-vid="' + dataVid + '"]')[0].click();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="youtube.com/link1" class="video" data-vid="1234">a</a>
<a href="youtube.com/link2" class="video" data-vid="2345">b</a>
<a href="youtube.com/link3" class="video" data-vid="3456">c</a>
<a href="youtube.com/link4" class="video" data-vid="4567">d</a>

答案 1 :(得分:0)

试试这个:

Array.from($('.video')).filter(ele=>ele.getAttribute('data-vid')==='1234')[0].click()

演示:

    Array.from($('.video')).filter(ele=>ele.getAttribute('data-vid')==='1234')[0].click()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="youtube.com/link1" class="video" data-vid="1234"/>
<a href="youtube.com/link2" class="video" data-vid="2345"/>
<a href="youtube.com/link3" class="video" data-vid="3456"/>
<a href="youtube.com/link4" class="video" data-vid="4567"/>

答案 2 :(得分:0)

  if ($(this).attr('data-vid') == 'HKg3AVKNPzU'){
        $(this).click()
  }

答案 3 :(得分:0)

您只需使用data方法来处理html数据属性。

要为您的问题提供解决方案,您可以使用以下任何选项。

选项1:

sudo apachectl restart

选项2:

$('a').each(function(e){
    // And relocate your path using
   // window.location.href
   e.preventDefault();
});

如果必须检查多个阻止,则可以使用jQuery.inArray方法:

if($(this).data('vid') !== '2345') { // Only check which is required to prevent
   e.preventDefault();
}
// Else the normal user click would be triggered.

答案 4 :(得分:0)

使用jQuery .data()方法https://api.jquery.com/data/

if ($(this).data('vid') == '2345') { ... }