You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JavaScript或jQuery为匹配指定CSS类的按钮设置聚焦

你在Cypress环境下可以直接用内置的API完成元素匹配+聚焦操作,不需要额外写复杂的JS/jQuery逻辑,两种常用实现方式如下:

  1. 直接使用Cypress选择器匹配目标类名,链式调用聚焦方法
    不需要在then回调里手动判断类名,直接用类选择器匹配元素,同时可附加可见性判断避免报错,代码如下:
it('Add new group', () => {
  cy.waitForInitLoad();
  // 匹配同时带有指定4个类名的#dxToolbarMenu元素,校验可见后触发聚焦
  cy.get('#dxToolbarMenu.dx-item.dx-menu-item.dx-menu-item-has-text.dx-menu-item-has-icon')
    .should('be.visible')
    .focus()
})

如果目标元素是#dxToolbarMenu的子元素,调整选择器为#dxToolbarMenu .dx-item.dx-menu-item.dx-menu-item-has-text.dx-menu-item-has-icon即可。

  1. 沿用现有then回调逻辑,用jQuery触发聚焦
    如果需要保留你原有的类名校验逻辑,直接在回调里调用jQuery的focus()方法即可:
it('Add new group', () => {
  cy.waitForInitLoad();
  cy.get('#dxToolbarMenu').then(($el) => {
    expect($el[0].className).to.equal(
      'dx-item dx-menu-item dx-menu-item-has-text dx-menu-item-has-icon',
    )
    // 直接调用jQuery封装的focus方法触发聚焦
    $el.focus()
  })
})

注意事项

如果目标元素是默认不可聚焦的普通容器元素(比如div、span),需要先给元素添加tabindex属性才能正常触发聚焦,示例如下:

cy.get('目标选择器')
  .invoke('attr', 'tabindex', '-1')
  .focus()

网页原始CSS样式参考下图:
网页CSS样式

内容的提问来源于stack exchange,提问作者Tomasito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 09:06:07