Добавление/удаления класса
Здравствуйте. Имеется три блока, в каждом из них есть ссылки, при нажатии на ссылку добавляется класс check, при повторном нажатии класс убирается.
В двух из трех блоков есть ссылка ALL, при нажатии на которую у всех ссылок в блоке должен убираться добавленный класс check. Как реализовать не понимаю. Пробовала искать первый элемент - не вышло. Ссылки создаются автоматически, т.е. задать определенной ссылке класс не получится в html Скрипт добавления класса к ссылкам с классом checkshadow
$('.checkshadow').click
(function() {
if($(this).is('.check'))
{
$(this).removeClass('check');
}
else
{
$(this).addClass('check');
}
})
;
|
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<div class="block"><a href="#">ссылка</a></div>
<div class="block"><a href="#" class="ALL">all</a><br><a href="#">ссылка</a></div>
<div class="block"><a href="#" class="ALL">all</a><br><a href="#">ссылка</a></div>
<script>
var a = $('.block a')
a.click(function(){
if($(this).hasClass("ALL")) a.removeClass('check');
else $(this).toggleClass('check');
});
</script>
|
<div class="block">1</div>
<div class="block">2</div>
<div class="block">3</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script>
// $('.checkshadow').click(function() {
// if($(this).is('.check')) {
// $(this).removeClass('check');
// } else {
// $(this).addClass('check');
// }
// });
$(".block")
.html("<a>ALL</a>" + "<a>Link</a>".repeat(100))
.on("click", "a", function(event) {
$(this).toggleClass("check")
})
.on("click", ":contains('ALL')", function(event) {
$(this).closest(".block").find("a").removeClass("check");
});
</script><style>
body {
display: flex;
}
.block {
background: deeppink;
margin: 1em;
padding: 1em;
}
.block a {
display: inline-block;
background: white;
padding: 1em;
margin: .1em;
}
.block a.check {
background: red;
}
</style>
Простите за ужасный вид |
Цитата:
Цитата:
|
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<div class="block"><a href="#">ссылка</a></div>
<div class="block"><a href="#">all</a><br><a href="#">ссылка</a></div>
<div class="block"><a href="#">all</a><br><a href="#">ссылка</a></div>
<script>
$('.block a').click(function(){
if($(this).text() == "all") $('a').removeClass('check');
else $(this).toggleClass('check');
});
</script>
|
если по куску текста, то вот такое условие
if(/all/.test($(this).text())) |
Цитата:
Только ссылки создаются не в js, а php. Вот пример одного из блоков <div class="tablinks <?=$i == 0 ? 'active' : ''?>" onclick=""> <a href = "#" class="checkshadow" onclick="return false"><?=$View->Attributes[$i]['Attribute']['AttributeAlias']?></a> </div> |
Цитата:
|
Цитата:
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<div class="block"><a href="#">ссылка</a></div>
<div class="block"><a href="#">all</a><br><a href="#">ссылка</a></div>
<div class="block"><a href="#">all</a><br><a href="#">ссылка</a></div>
<script>
$('.block a').click(function(){
if(/all/.test($(this).text())) $(this).siblings("a").removeClass('check');
else $(this).toggleClass('check');
});
</script>
переделал |
j0hnik,
в предпросмотре все замечательно, у меня же просто перестает работать эта кнопка All :-? |
| Часовой пояс GMT +3, время: 06:45. |