【问题标题】:Click on anchor tag in javascript works on in console单击javascript中的锚标记在控制台中有效
【发布时间】:2018-01-17 06:37:24
【问题描述】:

我有几个像下面这样的锚标签

<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>

如果我包含在&lt;script&gt;&lt;/script&gt; 标记中,这将不起作用。但是如果我将它粘贴到 console (开发者选项)中,它工作正常。这让我很生气。我不明白为什么它不包含在页面中。我们在控制台中工作时是否调用了任何事件?

【问题讨论】:

  • 首先你不能有多个具有相同ID的a标签,如果需要将其更改为data-id,并触发点击它应该是.trigger("click")
  • 您的GTid_3 id 是否动态添加到元素中?
  • 尝试将脚本包含在$(document).ready(function(){ 中而不是将其包含在外部

标签: javascript jquery


【解决方案1】:

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

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

您没有提到您将 &lt;script&gt; 放在哪里,但如果相同的代码完全可以通过控制台运行,那么它也需要在实际中运行。

【讨论】:

  • 我把所有的脚本放在了页面的最后。我无法清楚地理解为什么它在控制台中工作?
  • @varman 好吧,如果你的这段代码是由 JS 引擎运行的,那么当这段代码运行时,可能没有#GTid3!什么都不会发生!您是否尝试使用我在这里编写的脚本?你能告诉我控制台是否有任何输出
  • 正如大家所说,id在某些情况下应该是唯一的,这里id-s是由代码生成的。那么代码是否因为自动生成而在控制台中工作?
  • 如果 ids 是由代码生成的,你必须确保 ^ 这段代码在分配 ids 之后 运行,否则 jQuery 将无法找到它们。
  • 非常感谢,我明白了。
【解决方案2】:

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

堆栈片段

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

【讨论】:

    猜你喜欢
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2018-12-26
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    相关资源
    最近更新 更多