我有一个项目我要在其中选择所有具有以下类别的元素:
.GB1, .GB2, .GB3, .GB4, .GB5
这将持续到.GB400
。
我还有其他元素其中包含以下类型的类.GB, .GBholder, .GB_color, .GB-size
,我不想选择这些元素。我没有任何以.GB
开头的其他元素类,而.GB
之后的数字类似于.GB1
或GB20
。所以我有个主意。但我不知道如何用jquery或javascript做这个。这个想法是“我会告诉浏览器,选择以.GB
开头的所有元素,然后选择.GB
它有一个或多个数字“。可能吗?我怎么能通过js或jquery做到这一点?
这是我现在正在尝试的代码:
$('.color').on('click', function() {
$('*[class^="GB"]').css("background-color","red");
})
我已经用这个类编写了所有的html和一些长css。因此,更改此类名称需要花费太多时间。
答案 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>