我的锚标签很少,如下所示
<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>
标记内,则此功能无效。但是,如果我将其粘贴到控制台(开发者选项)中,它的工作正常。这让我很生气。我无法理解为什么它不包含在页面中。我们在控制台工作时是否有任何事件被调用?
答案 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
$(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;