如何在jQuery中使用[att~=“val”选择器获取CSS子类

如何在jQuery中使用[att~=“val”选择器获取CSS子类,jquery,regex,jquery-selectors,Jquery,Regex,Jquery Selectors,我在获取元素中的子类的值时遇到了一些困难。通常,我会使用.hasClass或.attr(“class”)进行验证,然后进行比较,但我会尝试获取动态生成的子类的值 假设我有一个class=“edit step1”。我必须只得到step1部分,但它不能取决于最后的数字,因为它可以是任何东西。我尝试了.hasClass(“~step”)和其他一些函数,但没有骰子 有没有人遇到过这样的情况,需要这样做,并且有解决方案,但即使是关于我应该去哪里看的任何提示,都将不胜感激 谢谢 .attr(“类”)将返回“

我在获取元素中的子类的值时遇到了一些困难。通常,我会使用
.hasClass
.attr(“class”)
进行验证,然后进行比较,但我会尝试获取动态生成的子类的值

假设我有一个
class=“edit step1”
。我必须只得到step1部分,但它不能取决于最后的数字,因为它可以是任何东西。我尝试了
.hasClass(“~step”)
和其他一些函数,但没有骰子

有没有人遇到过这样的情况,需要这样做,并且有解决方案,但即使是关于我应该去哪里看的任何提示,都将不胜感激

谢谢

.attr(“类”)
将返回“编辑步骤1”


把它当作一根绳子。您可以使用
.split(“”)
将其转换为一个数组,然后您可以循环遍历这些值并计算其中的内容。

对于类来说,这不是一个很好的用途,特别是因为它们已经以非结构化的方式存储在元素属性中。这将是“数据步骤”标记的一个很好的用途

如果您可以指望正在构造的名称,那么最好的办法可能是拆分类列表并查看每个元素

$('div[class~=" step"]').each(function(){
    steps = this.attr('class').match(/\bstep\d+/);
})

如果你遇到这种次优情况,上面的方法可能会奏效

显示一些HTML,我觉得你好像误用了类。添加另一个名为“step”的类可能会更干净/更容易,但所有元素上都没有关于这一点的编号<代码>我只需要得到“步骤”部分。@Chimoo很遗憾,这是不可能的,因为类是在另一个文件中生成的,并且由于以后的一些集成,必须具有这种结构。我只是想澄清一下:
~
本身就是通用同级组合器,在CSS3中引入。然而,jQuery并没有实现这个组合器,所以在jQuery选择器中使用它,比如
$('h3~p')
,在不支持它的IE6中是行不通的。您可能需要编辑您的问题,以明确您正试图选择的内容,因为这可能会让某些人感到困惑。您是否碰巧指的是
?如果是这样的话-谢谢你做了这件了不起的事我肯定会强迫你这么做,但首先我必须找到一些关于这个标签的文档。@peter:是的,然后再找到你的步骤就变得相对简单了。它只是html5,但我从未见过浏览器抱怨它们在非html5文档中的使用。伟大的感谢您的代码(我现在将使用它)和我必须强制执行的数据步骤标签想法:D正确的答案,但我不得不选择梅尼格利的答案,因为这一个给了我一个额外的步骤,他也给了我“数据步骤”的想法。反正投票是有用的,因为它是正确的,这只是解决我问题的另一种方式。非常感谢。