点击javascript中的锚标签在控制台中工作

时间:2018-01-17 06:37:24

标签: javascript jquery

我的锚标签很少,如下所示

<a href="#" id="anchor tag id" class="pointer-level">Button</a>

页面加载后,应触发id为“ GTid_3 ”的所有锚标记(点击事件)。我写了一个jquery代码

<script>

    $(document).ready(function(){
    })

    $('.pointer-level').each(function(){    
        if($(this).attr("id")=="GTid_3")    
            $(this).click()
    })
</script>

如果我包含在<script></script>标记内,则此功能无效。但是,如果我将其粘贴到控制台(开发者选项)中,它的工作正常。这让我很生气。我无法理解为什么它不包含在页面中。我们在控制台工作时是否有任何事件被调用?

2 个答案:

答案 0 :(得分:1)

在创建元素之前,您似乎正在运行代码。您也可以使用console.log s轻松调试它,如下所示:

$(document).ready(function(){
    $('.pointer-level').each(function(){    
         console.log('.pointer-level found');
        if($(this).attr("id")=="GTid_3") {
            console.log('#GTid3 found!');
            $(this).click()
        }
    })
})

您没有提到确切地放置<script>的确切位置,但如果相同的代码完全通过控制台运行,则还需要在其中运行。

答案 1 :(得分:1)

如果您的ID动态添加,请尝试使用$(document).find('.pointer-level').each(function()。并触发点击使用$(this).trigger('click')

Stack Snippet

&#13;
&#13;
$(document).ready(function() {
  $(document).find('.pointer-level').each(function() {
    if ($(this).attr("id") == "GTid_3")
      $(this).trigger('click');
  });
})
$(document).on('click', '#GTid_3', function() {
  console.log('clicked '+$(this).text());
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="pointer-level" id="GTid_3">1</a>
<a class="pointer-level">2</a>
<a class="pointer-level" id="GTid_3">3</a>
<a class="pointer-level">4</a>
<a class="pointer-level" id="GTid_3">5</a>
&#13;
&#13;
&#13;