【问题标题】:Second level pseudo selection?二级伪选择?
【发布时间】:2012-12-21 22:38:06
【问题描述】:

我不知道是否已经有这个帖子,因为我不知道如何准确地表达这个问题,所以我举个例子..

<ul class=filters>
     <li class=segment-1>
         <a href="#">Web</a>
     </li>
</ul>

该代码用于在您单击列表项时过滤图库的列表。

我想我应该能够使用代码来选择“Web”,这样我就可以在页面加载时自动过滤图库。

$('element*="Web"').click();

这是最好的做事方式吗?如果是..我用什么代替“元素”来选择 Web

【问题讨论】:

  • 也许你想要:contains jQuery 选择器
  • *="x" 在 jQuery 中不起作用吗?更不用说我还需要知道用什么替换“元素”
  • @BrantBarton 不,这在 jQuery 或 CSS 中不起作用。 jQuery 选择器模仿 CSS 选择器。
  • 您正在考虑attribute contains selector,这或多或少是正确的语法;但是,您不是尝试基于属性进行选择(尽管您可能应该是),而是尝试根据元素的 内容 进行选择跨度>
  • 对不起,@KevinB 我意识到这仅适用于属性而不是元素

标签: jquery pseudo-element


【解决方案1】:
$('ul.filters li a:contains("Web")').trigger('click');

【讨论】:

  • 好的@eteich,第一部分现在有意义了。但我感到困惑的部分是,我可以使用 jQuery 为我自动单击选项吗?不是我想让点击做一个单独的功能..我只是想让它点击链接。
  • 您正在寻找 trigger() 函数。我更新了上面的示例。
【解决方案2】:

有更好的方法,不必在每次标记文本稍有变化时都更新。

要么在锚标签中添加一个类,并用一些与其用途相关的有意义的名称,然后执行以下操作(我使用navLink作为类名):

$('.navLink').click();

或者使用现有的标记层次结构:

$('ul.filters > li.segment-1 > a').click();

附:请注意,我修复了标记中属性值周围的引号:

<ul class="filters">
     <li class="segment-1">
         <a href="#" class="navLink" >Web</a>
     </li>
</ul>

【讨论】:

  • 由于这是一个 wordpress 插件,我将不得不使用 javascript 来添加类。我确定我可以弄清楚如何
  • 不幸的是,这不会那么简单,因为我需要编写一个通用的脚本来处理每一页。所以我需要创建一些变量和一个 for 循环,并根据变量将 .addClass 应用于正确的列表项。
猜你喜欢
  • 1970-01-01
  • 2010-12-17
  • 2017-12-18
  • 2013-03-06
  • 1970-01-01
  • 2016-02-05
  • 2014-06-15
  • 1970-01-01
  • 2021-06-18
相关资源
最近更新 更多