^=
выбирает элемент с атрибутом class
, который начинается с следующей строки.Вы можете использовать *=
селектор, чтобы выбрать класс , который содержит :
$('.box2').addClass(function() {
return 'list_' + $('.box1 li').length;
});
div[class*="list_"] {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="box1">
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
<div class="box2">text</div>
Но я бы никогда не полагался на такую конструкцию - используйте новый класс (скажем list
)вместо этого, вместо этого вы можете использовать .box2.list
вместо специфичность (обратите внимание, что после точки нет пробела):
$('.box2').addClass(function() {
// your business logic determining which class to add
return 'list';
});
.box2.list {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="box1">
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
<div class="box2">text</div>