Подскажите, пожалуйста самый простой способ выбрать 3-х потомков от одинаковых родителей. Приведу пример
$(".block").children(":lt(3)").wrapAll("<div class='view_list__leftSide' />");
.block {
margin-top: 10px;
border: 1px solid #000;
}
.view_list__leftSide {
color: #f00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="block">
<p>One</p>
<p>Two</p>
<span>Three</span>
<p>Four</p>
<button>Five</button>
</div>
<div class="block">
<p class="foo">Six</p>
<a href="">Seven</a>
<span>Eight</span>
<div class="bl_text">Nine</div>
</div>
Есть некие блоки в середине которых находятся некий неоднородный контент. Задача - Как первых трёх потомков обернуть в div оббертку с нужным классом ? Возможно ли это сделать без циклов? ПС. Мой пример отрабатывает только на первом блоке и останавливается
ваш пример не обрабатывает первый блок и останаливается. Он просто сначала сваливает всех потомков в один список, а потом из них выбирает первые три.
но чем плох вариант с циклами, почему вы хотите их избежать?
$(".block").each(function(idx, v){
$(v).children(":lt(3)").wrapAll("<div class='view_list__leftSide' />");
})
Для некоторых задач (например, изменить стиль, добавить класс и т.п. не требующих операций с DOM), можно было бы перечислить первые 3 элемента каждого блока таким образом:
$(".block > :nth-child(1), .block > :nth-child(2), .block > :nth-child(3)")
и выполнить нужные действия. Но когда речь идет об обертке во внешний html это не прокатывает. Ибо все выбранные элементы оборачиваются в общий див и переносятся в первый .block
.
$(".block").each(function(idx, v){
$(v).children(":lt(3)").wrapAll("<div class='view_list__leftSide' />");
console.log( $(v).html());
});
.block {
margin-top: 10px;
border: 1px solid #000;
}
.view_list__leftSide {
color: #f00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="block">
<p>One</p>
<p>Two</p>
<span>Three</span>
<p>Four</p>
<button>Five</button>
</div>
<div class="block">
<p class="foo">Six</p>
<a href="">Seven</a>
<span>Eight</span>
<div class="bl_text">Nine</div>
</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ПриветНе могу понять как сделать так, чтобы поверх изображения отцентрировать текст относительно самого изображения, чтобы при ресайзе...
Собственно, как грамотно сверстать подобную страницу? Проблема в том, что макет резиновый, и чёрная пунктирная линия идёт по высоте всей страницы...
Добрый деньПри масштабировании страницы столкнулся со следующей проблемой: -смещается текст описания
Slick Slider некорректно отрабатывает в том случае, когда слайдер при загрузке страницы сразу скрываетсяПример: