Как выбрать диапазон элементов в jQuery

<div id = "myDiv">
     <a>...</a>
     <a>...</a>
     <a>...</a>
     <a>...</a>
     <a>...</a>
     <a>...</a>
</div>

Если бы вы хотели выбрать 2-й, 3-й и 4-й теги a в приведенном выше примере, как бы вы это сделали? Единственное, о чем я могу думать, это:

$("#myDiv a:eq(1), #myDiv a:eq(2), #myDiv a:eq(3)")

Но это не выглядит очень эффективным или красивым. Я предполагаю, что вы также можете выбрать ВСЕ a, а затем запустить .each поверх них, но это могло бы стать очень неэффективным, если бы было намного больше a.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
60
0
46 751
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Использование функции .ломтик() делает именно то, что мне нужно.

Ответ принят как подходящий

Функция jQuery ломтик(), принимающая индексы первого и последнего необходимых элементов, выбирает подмножество совпадающих элементов. Обратите внимание, что он не включает в себя сам последний элемент.

В вашем конкретном случае вы должны использовать

$("#myDiv a").slice(1, 4)

$('.className').slice(1, 4) также может быть полезен, это то, что мне нужно для моего сценария, большое спасибо за то, что начали ход мыслей :)

pulkitsinghal 25.03.2012 05:07

Добавляет ли такой широкий начальный выбор накладные расходы на обработку по сравнению с более конкретным селектором? Или вы считаете: lt,: gt и: eq более ресурсоемкими?

aaronbauman 04.02.2014 22:31

Большой. Это также работает для выбора нескольких параметров из элемента select.

Surya 22.05.2015 15:38

Вы должны иметь возможность сделать это, извлекая таким образом фрагмент массива. Это линия

$("div[id='myDiv'] > a").slice(1,4).css("background","yellow");

которые вас интересуют. Это повлияет на 2-й, 3-й и 4-й элементы.

<html>
    <head>
        <script type = "text/javascript" src = "jquery-1.2.6.pack.js"></script>
        <script type = "text/javascript">
            $(document).ready(function(){
                $("a").click(function(event){
                    $("div[id='myDiv'] > a").slice(1,4).css("background","yellow");
                    event.preventDefault();
                });
            });
        </script>
    </head>
    <body>
        <div id = "myDiv">
            <a>1</a>
            <a>2</a>
            <a>3</a>
            <a>4</a>
            <a>5</a>
            <a>6</a>
        </div>
        <hr>
        <a href = "" >Click here</a>
        <hr>
    </body>
</html>

этот выбор идентификатора крайне неэффективен. Вместо этого следует использовать синтаксис $("#myDiv").

CBarr 14.04.2011 01:42

Другие вопросы по теме