Javascript 如何选择具有相同前缀的多类

Javascript 如何选择具有相同前缀的多类,javascript,jquery,Javascript,Jquery,如何在jQuery中选择以foo class-开头的多类,即foo-class-1、foo-class-2、foo-class-3…使用以下命令尝试此操作: 案例1:当元素只有一个类时 var $class = $('[class^="foo-class-"]'); 案例2:当一个元素有多个类时(归功于Adeneo) 使用以下命令尝试此操作: 案例1:当元素只有一个类时 var $class = $('[class^="foo-class-"]'); 案例2:当一个元素有多个类时(归功于Ad

如何在jQuery中选择以
foo class-
开头的多类,即
foo-class-1
foo-class-2
foo-class-3
…使用以下命令尝试此操作:

案例1:当元素只有一个类时

var $class = $('[class^="foo-class-"]');
案例2:当一个元素有多个类时(归功于Adeneo)

使用以下命令尝试此操作:

案例1:当元素只有一个类时

var $class = $('[class^="foo-class-"]');
案例2:当一个元素有多个类时(归功于Adeneo)

您可以指定要替换
类的任何属性

var foos = $('*', parent_selector).filter(function() {
              return (" " + this.className).indexOf(' foo-class-') != -1;
           });

如果您的
class=“”
属性可能有多个类,那么您最好使用自定义的
.filter()
选项来代替
类,您可以指定所需的属性

var foos = $('*', parent_selector).filter(function() {
              return (" " + this.className).indexOf(' foo-class-') != -1;
           });
在这里,我使用正则表达式筛选出具有类值的元素,该类值具有
foo class-
。我的正则表达式已经生锈了,所以我确信这是次优的,但是你应该了解要点

var candidates = $('div'); // or some preliminary selection
var finalists = candidates.filter(function () {
    return !!/\bfoo-class-.*/.exec(this.className);
});

如果您的
class=”“
属性可能有多个类,那么您最好使用自定义的
.filter()
选项

在这里,我使用正则表达式筛选出具有类值的元素,该类值具有
foo class-
。我的正则表达式已经生锈了,所以我确信这是次优的,但是你应该了解要点

var candidates = $('div'); // or some preliminary selection
var finalists = candidates.filter(function () {
    return !!/\bfoo-class-.*/.exec(this.className);
});


如果有多个类,则假定该类是列出的第一个类。这将在
@JamesMontagne::)等同样存在问题的情况下失败,类名包含但不以字符串开头。另外,这不是您发布的答案。@user1912285对于这种情况,它将不再起作用。以下是解决方案@JamesMontagne:现在可以吗??如果有多个类,则假定该类是列出的第一个类。这将在
@JamesMontagne::)等同样存在问题的情况下失败,类名包含但不以字符串开头。另外,这不是您发布的答案。@user1912285对于这种情况,它将不再起作用。以下是解决方案@JamesMontagne:现在可以吗??您有权访问生成html的代码吗?在每个元素上包含一个共享类会更好。为它们提供一个公共类,并避免缓慢的工作。@ArtyomNeustroev不是重复的-这是一个更难的问题,因为ID只有一个值,但类可能有多个(空格分隔的)值。您有权访问生成html的代码吗?在每个元素上包含一个共享类会更好。给它们一个公共类,避免缓慢的工作。@ArtyomNeustroev不是重复的-这是一个更难的问题,因为ID只有一个值,但类可能有多个(空格分隔的)值。只希望在foo类之前没有其他类。谢谢!,这意味着我可以在
项中使用它?(jQueryUI)抱歉,我对此不确定。请再试一次,让我知道我尝试了应用您的代码,但它不起作用:只希望在foo one之前没有其他课程。谢谢!,这意味着我可以在
项中使用它?(jQueryUI)抱歉,我对此不确定。请再试一次,让我知道我试图应用您的代码,但它不起作用:如果类名前面没有空格怎么办?将失败
class=“foo-class-x”
,如果类名前面没有空格怎么办?将失败
class=“foo-class-x”
此“包含”而不是“以开头”.@JamesMontagne~就像我说的,生锈了。@JamesMontagne~更新了。希望情况会好一些d此“包含”而不是“开始于”。@JamesMontagne~如我所说,rusty。@JamesMontagne~已更新。希望情况会好一些D