Javascript 在页面加载时单击页面上的元素

Javascript 在页面加载时单击页面上的元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,因此,我使用的是Squarespace模板,我认为实现某种行为的最简单方法(基本上显示一个div,该div通常在点击横幅之前保持隐藏)是假装点击横幅本身 我这里有两个问题: 由于ID似乎每次都会部分更改,因此无法一致地挑出特定的元素。所以我需要基本上得到这个类中出现的第一个元素和其中的锚标记 在所有的嵌套中,我不确定到底需要单击什么。是div,还是锚定标签,还是什么 代码如下: <div class="item sqs-gallery-design-autocolumns-slide" i

因此,我使用的是Squarespace模板,我认为实现某种行为的最简单方法(基本上显示一个div,该div通常在点击横幅之前保持隐藏)是假装点击横幅本身

我这里有两个问题:

  • 由于ID似乎每次都会部分更改,因此无法一致地挑出特定的元素。所以我需要基本上得到这个类中出现的第一个元素和其中的锚标记
  • 在所有的嵌套中,我不确定到底需要单击什么。是div,还是锚定标签,还是什么
  • 代码如下:

    <div class="item sqs-gallery-design-autocolumns-slide" id="someidthatchanges" data-type="image" style="top: 0px; left: 0px; width: 1440px; height: 514px;" overlaydelay="236">
          <a href="thelink" data-dynamic-load="" data-dynamic-receiver="#somestuff" id="idthatchanges">
            <div class="wrapper" id="idthatchanges">
              <div class="project-title" id="idthatchanges">
                <h2 id="idthatchanges">+</h2>
                <h3>— view —</h3>
              </div>
            </div>
            <img src="someUnimportantImage.gif"/>
         </a>
    </div>
    
    上述操作在控制台中也不起作用(即使ID正确),但不会给出任何错误,因此它似乎是某种类型的目标问题

    有什么想法吗?

    调用
    .trigger('click')
    或jQuery的
    .click()
    方法实际上不会触发锚的默认单击行为(它只触发与jQuery和内联单击处理程序绑定的事件处理程序)。您可以通过调用DOM元素的本机
    。而不是单击()
    方法来解决这个问题

    将其与您关于将第一个元素作为类的目标的注释放在一起:

    $("document").ready(function() {
      $('.sqs-gallery-design-autocolumns-slide:first a')[0].click();
    });
    
    我不确定到底需要点击什么。是div,还是锚定标签,还是什么

    所显示的HTML没有任何内联事件处理程序,因此我们无法确定应该以哪个元素为目标。除了逻辑上它应该是锚,因为只有键盘用户才能“单击”。

    调用
    .trigger('click')
    或jQuery的
    。click()
    方法实际上不会触发锚的默认单击行为(它只触发与jQuery和内联单击处理程序绑定的事件处理程序)。您可以通过调用DOM元素的本机
    。而不是单击()
    方法来解决这个问题

    将其与您关于将第一个元素作为类的目标的注释放在一起:

    $("document").ready(function() {
      $('.sqs-gallery-design-autocolumns-slide:first a')[0].click();
    });
    
    我不确定到底需要点击什么。是div,还是锚定标签,还是什么


    所显示的HTML没有任何内联事件处理程序,因此我们无法确定应该以哪个元素为目标。除了逻辑上它应该是锚,因为这是只有键盘用户才能“点击”的东西。

    也许你想要的是这样的东西

    $(document).ready(function(){
     $(".item.sqs-gallery-design-autocolumns-slide").find("a").click();
    })
    

    也许你想要的是这样的东西

    $(document).ready(function(){
     $(".item.sqs-gallery-design-autocolumns-slide").find("a").click();
    })
    

    真管用!但只在控制台中。我试着在页眉和页脚中都使用这一行,甚至给它一个延迟,但它似乎不起作用。我怀疑这是因为加载元素的顺序,但我认为将它放在页脚中可以解决这个问题。如果您尝试单击的元素是动态创建的,那么它可能还不存在。如果你给它一个很长的延迟,它仍然不工作,那么我不知道元素是从哪里来的。3秒的延迟工作,但这看起来有点业余。有没有什么方法可以在加载整个页面时运行这行代码,而不是给它一个固定的超时时间?这很有效!但只在控制台中。我试着在页眉和页脚中都使用这一行,甚至给它一个延迟,但它似乎不起作用。我怀疑这是因为加载元素的顺序,但我认为将它放在页脚中可以解决这个问题。如果您尝试单击的元素是动态创建的,那么它可能还不存在。如果你给它一个很长的延迟,它仍然不工作,那么我不知道元素是从哪里来的。3秒的延迟工作,但这看起来有点业余。是否有某种方法可以在加载整个页面时运行该行代码,而不是给它一个固定的超时时间?