如何选择以GB开头的所有类?

时间:2016-03-01 14:15:15

标签: javascript jquery jquery-selectors selector

我有一个项目我要在其中选择所有具有以下类别的元素:
.GB1, .GB2, .GB3, .GB4, .GB5这将持续到.GB400
我还有其他元素其中包含以下类型的类.GB, .GBholder, .GB_color, .GB-size,我不想选择这些元素。我没有任何以.GB开头的其他元素类,而.GB之后的数字类似于.GB1GB20。所以我有个主意。但我不知道如何用jquery或javascript做这个。这个想法是“我会告诉浏览器,选择以.GB开头的所有元素,然后选择.GB它有一个或多个数字“。可能吗?我怎么能通过js或jquery做到这一点?

这是我现在正在尝试的代码:

$('.color').on('click', function() {
    $('*[class^="GB"]').css("background-color","red");
})

我已经用这个类编写了所有的html和一些长css。因此,更改此类名称需要花费太多时间。

1 个答案:

答案 0 :(得分:1)

您可以使用filter()isNaN()方法,如下所示。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="GB1">GB1</div>
<div class="GB2">GB2</div>
<div class="GB3">GB2</div>
<div class="GBholder">GB holder</div>
<div class="GB_color">GB color</div>
<input type="button" value="Click" class="color"/>

<script>
    $('.color').on('click', function () {
        $('[class^="GB"]').filter(function () {
            return isNaN($(this).attr('class').slice(2)) == false;

            //if your elements has more than one class then add GB first and try this
            //var cl = $(this).attr('class').split(' ')[0];
            //return isNaN(cl.slice(2)) == false;
        }).css("background-color", "red");
    })
</script>