Я пробовал кое-что в течение нескольких часов, но теперь надеюсь на помощь извне.
У меня есть элементы li с <span>
внутри, которые пользователь может переименовать по своему усмотрению. Соглашение об именах всегда одно и то же и разделено подчеркиванием.
- Имя категории
- Категория
- Имя элемента
- Иногда еще больше идентификатора для 3.
Пример :
Поскольку этот список может стать очень длинным, у меня была идея сделать его более понятным с помощью случайных цветов фона. Здесь возникает проблема.
Как я могу установить цвет для каждого элемента li на основе упомянутого 1-3 синтаксиса? Вот как это должно выглядеть:
Это то, что я получил до сих пор. Очевидно, что просто перебираем каждый li и не можем его классифицировать:
Код:
var lastPick;
var rand;
$('[tree-item-name]').each(function() {
$(this).css('background',randomColor());
});
function randomColor() {
var back = ["#ffc0cb61","rgba(192,255,210,0.38)","rgba(192,220,255,0.38)","rgba(241,192,255,0.38)","rgba(192,240,255,0.38)","rgba(255,221,192,0.38)","rgba(231,255,192,0.38)"];
rand = back[Math.floor(Math.random() * back.length)];
rand==lastPick?randomColor():rand;
lastPick = rand;
return rand;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<li>
<span class="ect-tree-title" tree-item-name="BJ_Mission_Start">BJ_Mission_Start</span>
</li>
<li>
<span class="ect-tree-title" tree-item-name="BJ_Mission_Start">BJ_Mission_Start_Go</span>
</li>
<li>
<span class="ect-tree-title" tree-item-name="BJ_Mission_Start">BJ_Mission_Cooldown_Won</span>
</li>
<li>
<span class="ect-tree-title" tree-item-name="BJ_Mission_Start">BJ_Mission_Cooldown_Won_Clear</span>
</li>
<li>
<span class="ect-tree-title" tree-item-name="BJ_Mission_Start">BJ_Mission_Cooldown_Lost</span>
</li>
<li>
<span class="ect-tree-title" tree-item-name="BJ_Mission_Start">BJ_Mission_Cooldown_Lost_Clear</span>
</li>
<li>
<span class="ect-tree-title" tree-item-name="BJ_Mission_Start">BJ_Quest_AskBet</span>
</li>
<li>
<span class="ect-tree-title" tree-item-name="BJ_Mission_Start">BJ_Quest_AskBet_Statistics</span>
</li>
<li>
<span class="ect-tree-title" tree-item-name="BJ_Mission_Start">BJ_Mission_Rules</span>
</li>
TL; DR:
Лог c Я хочу:
- Проверить все элементы li и его текст (интервала)
- соответствует группам вместе на основе идентификатора
- первые три группы, разделенные подчеркиванием, должны иметь одинаковый цвет
- A_B_C_123 должен иметь одинаковый цвет как A_B_C_321, но у A_B_D_423 должен быть другой цвет и т. д.
Надеюсь, что он ясный и "простой" ?