Как найти соседние элементы на jquery

.siblings( [selector ] )Returns: jQuery

Description: Get the siblings of each element in the set of matched elements, optionally filtered by a selector.

  • version added: 1.0.siblings( [selector ] )

    • selector

      A string containing a selector expression to match elements against.

Given a jQuery object that represents a set of DOM elements, the .siblings() method allows us to search through the siblings of these elements in the DOM tree and construct a new jQuery object from the matching elements.

The method optionally accepts a selector expression of the same type that we can pass to the $() function. If the selector is supplied, the elements will be filtered by testing whether they match it.

Consider a page with a simple list on it:

1

2

3

4

5

6

7

<li class="third-item">list item 3</li>

If we begin at the third item, we can find its siblings:

1

$( "li.third-item" ).siblings().css( "background-color", "red" );

The result of this call is a red background behind items 1, 2, 4, and 5. Since we do not supply a selector expression, all of the siblings are part of the object. If we had supplied one, only the matching items among these four would be included.

The original element is not included among the siblings, which is important to remember when we wish to find all elements at a particular level of the DOM tree. However, if the original collection contains more than one element, they might be mutual siblings and will both be found. If you need an exclusive list of siblings, use $collection.siblings().not($collection).

Examples:

Find the unique siblings of all yellow li elements in the 3 lists (including other yellow li elements if appropriate).

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

<title>siblings demo</title>

<script src="https://code.jquery.com/jquery-3.7.0.js"></script>

<li class="hilite">Three</li>

<li class="hilite">Nine</li>

<li class="hilite">Eleven</li>

<p>Unique siblings: <b></b></p>

var len = $( ".hilite" ).siblings()

Demo:

Find all siblings with a class «selected» of each div.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<title>siblings demo</title>

<script src="https://code.jquery.com/jquery-3.7.0.js"></script>

<div><span>Hello</span></div>

<p class="selected">Hello Again</p>

$( "p" ).siblings( ".selected" ).css( "background", "yellow" );

Demo:

Can you help me with this jQuery selector?

$(".auctiondiv .auctiondivleftcontainer .countdown").each(function () {
    var newValue = parseInt($(this).text(), 10) - 1;
    $(this).text(newValue);

    if (newValue == 0) {
        $(this).parent().fadeOut();
        chat.verify($(this).parent().parent().attr('id'));
    }
});

Basically, I want to select the element with .bidbutton class that belongs in the same parent as the .countdown in the each loop:

<div class="auctiondivleftcontainer">
    <p class="countdown">0</p>
    <button class="btn primary bidbutton">Lance</button>                            
</div>  

And then apply this to that button:

$(button here).addClass("disabled");
$(button here).attr("disabled", "");

Tchami's user avatar

Tchami

4,6271 gold badge32 silver badges45 bronze badges

asked Sep 18, 2011 at 17:49

Only Bolivian Here's user avatar

Use jQuery .siblings() to select the matching sibling.

$(this).siblings('.bidbutton');

answered Sep 18, 2011 at 17:52

Madara's Ghost's user avatar

Madara’s GhostMadara’s Ghost

171k50 gold badges263 silver badges309 bronze badges

2

$(this).siblings(".bidbutton")

answered Sep 18, 2011 at 17:52

JohnD's user avatar

$("h2").siblings().css({"color": "blue"});

Samuel Liew's user avatar

Samuel Liew

76.1k107 gold badges156 silver badges257 bronze badges

answered Sep 15, 2015 at 6:07

Sourav Basak's user avatar

Sourav BasakSourav Basak

4861 gold badge4 silver badges15 bronze badges

you can use 
$(this).siblings(".bidbutton").addClass("disabled");
$(this).siblings(".bidbutton").attr("disabled","");

answered Mar 6, 2021 at 10:40

Sarasjd's user avatar

$("selector").nextAll(); 
$("selector").prev(); 

you can also find an element using Jquery selector

$("h2").siblings('table').find('tr'); 

Jean-François Fabre's user avatar

answered May 4, 2015 at 13:01

Barath Kumar's user avatar

you can select a sibling element using jQuery

 <script type="text/javascript">
    $(document).ready(function(){
        $("selector").siblings().addClass("classname");
    });
 </script>

Demo here

answered Apr 22, 2019 at 5:41

Developer's user avatar

DeveloperDeveloper

94012 silver badges8 bronze badges

If you want to select a specific sibling:

var $sibling = $(this).siblings('.bidbutton')[index];

where ‘index’ is the index of the specific sibling within the parent container.

answered Dec 5, 2016 at 12:19

Peter Meadley's user avatar

1

Since $(this) refers to .countdown you can use $(this).next() or $(this).next('button') more specifically.

answered Sep 18, 2011 at 17:52

AlienWebguy's user avatar

AlienWebguyAlienWebguy

76.8k17 gold badges121 silver badges144 bronze badges

2

Try —

   $(this).siblings(".bidbutton").addClass("disabled").attr("disabled", "");

answered Sep 18, 2011 at 17:53

ipr101's user avatar

ipr101ipr101

24k8 gold badges58 silver badges61 bronze badges

also if you need to select a sibling with a name rather than the class, you could use the following

var $sibling = $(this).siblings('input[name=bidbutton]');

answered Apr 12, 2019 at 13:53

Shobi's user avatar

ShobiShobi

10.1k6 gold badges43 silver badges80 bronze badges

If I understood that correctly you’re already in a loop (each) so you would always want to select that one sibling button inside each loop runthrough?
Since siblings() returns an array, this would be the way to go:

$(this).siblings('.bidbutton')[0]

You can apply both things you wanted in a single line doing this:

$(this).siblings('.bidbutton')[0].addClass("disabled").attr("disabled", "");

answered Mar 10, 2021 at 15:06

Tarik A.'s user avatar

jQuery перемещения

Определение и применение

jQuery метод .siblings() позволяет получить все элементы находящиеся на одном уровне вложенности (смежные элементы) с указанным элементом, дополнительно они могут фильтроваться с помощью заданного селектора.


Обращаю Ваше внимание, что под одноуровневыми элементами стоит понимать элементы, которые имеют одного и того же родителя.


jQuery синтаксис:

Синтаксис 1.0:
// выбор всех смежных элементов
$( selector ).siblings()

// выбор смежного элемента с определенным селектором
$( selector ).siblings( selector )

selector - Selector

Добавлен в версии jQuery

1.0

Значения параметров

Параметр Описание
selector Строка селектор, использующаяся в качестве дополнительного фильтра. Если дополнительно указывается селектор, то выбор элемента (добавление в коллекцию jQuery) осуществляет только в том случае, если он соответствует этому селектору. Необязательный параметр.

Пример использования

<!DOCTYPE html>
<html>
	<head>
		<title>Использование метода .siblings()</title>
		<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
		<script>
	$( document ).ready(function(){
	  $( 'li.second' ).siblings().css( "color", "red" );  // выбираем все смежные элементы элемента <li> с классом second в документе
	  $( 'li' ).siblings().css( "background", "khaki" );  // выбираем все смежные элементы элемента <li> в документе
	  $( 'li' ).siblings( '.active' ).css( "color", "green" ); // выбираем все смежные элементы элемента <li> в документе, которые имеют определенный селектор
	});
		</script>
	</head>
	<body>
		<ul>
			<li>Первый элемент</li>
			<li class ="second">Второй элемент</li>
			<li>Третий элемент</li>
		</ul>
		<ul>
			<li>Первый элемент</li>
			<li class ="active">Второй элемент</li>
			<li>Третий элемент</li>
		</ul>
		<ul>
			<li>Первый элемент</li>
			<li>Второй элемент</li>
			<li>Третий элемент</li>
		</ul>
	</body>
</html>

В этом примере с использованием jQuery метода .siblings() мы:

  • Выбираем все смежные элементы элемента <li> с классом second в документе и с помощью метода .css() устанавливаем им цвет текста красный. Обратите внимание, что будут выбраны только два элемента, так как только эти смежные элементы имеют того же родителя, что и элемент с классом second.
  • Выбираем все смежные элементы элемента <li> в документе и с помощью метода .css() устанавлием цвет заднего фона цвета khaki.
  • Выбираем все смежные элементы элемента <li> в документе, которые имеют определенный селектор и с помощью метода .css() устанавливаем им цвет текста зеленый.

Результат нашего примера:

Пример использования метода .siblings()

Пример использования метода .siblings()
jQuery перемещения

jQuery позволяет совершать проход по одному уровню дерева DOM и находить соседних элементов заданного элемента.

Соседние или одноуровневые элементы — это элементы, принадлежащие одному и тому же родителю.

Проход по одному уровню дерева DOM

Существует ряд методов jQuery для прохода по соседним элементам дерева DOM:

  • siblings()
  • next()
  • nextAll()
  • nextUntil()
  • prev()
  • prevAll()
  • prevUntil()

jQuery метод siblings()

Метод siblings() возвращает все элементы, находящиеся на одном уровне с выбранным элементом.

В следующем примере возвращаются все соседние элементы от <h2>:


$(document).ready(function(){
  $("h2").siblings();
}); 

Также можно использовать необязательный параметр для фильтрации найденных элементов.

В следующем примере возвращаются все элементы <p>, находящиеся на одном уровне с элементом <h2>:


$(document).ready(function(){
  $("h2").siblings("p");
}); 

jQuery метод next()

Метод next() возвращает следующий соседний элемент от выбранного элемента.

В следующем примере возвращаются следующий соседний элемент от <h2>:


$(document).ready(function(){
  $("h2").next();
}); 

jQuery метод nextAll()

Метод nextAll() возвращает все следующие соседние элементы от выбранного элемента.

В следующем примере возвращаются все следующие соседние элементы от <h2>:


$(document).ready(function(){
  $("h2").nextAll();
}); 

jQuery метод nextUntil()

Метод nextUntil() возвращает все следующие соседние элементы между двумя заданными аргументами.

В следующем примере возвращаются все соседние элементы между элементами <h2> и <h6>:


$(document).ready(function(){
  $("h2").nextUntil("h6");
}); 

jQuery методы prev(), prevAll() и prevUntil()

Методы prev(), prevAll() и prevUntil() работают также как описанные выше методы, только в обратном направлении: они возвращают предшествующие соседние элементы (обход назад по элементам одного уровня дерева DOM, а не вперед).

В jQuery существуют методы для работы с соседними элементами, потомками а также для поиска элементов внутри родительского. Рассмотрим эти методы.

Обращение к предыдущему и следующему элементу (prev, next)

Для обращения к предыдущему и следующему элементу существуют два метода под названием prev, next. Всё что они делают — указывают на предыдущий или последующий HTML тег. Попробуем применить их на практике. Используем их одновременно так, чтобы поменять HTML содержимое предыдущего и последующего элемента:

<div id="1">Тише, мыши, кот на крыше</div>
<div id="2">а котята ещё выше.</div>
<div id="3">Кот пошёл за молоком,</div>
<div id="4">а котята кувырком.</div>
<script>
   $('#2').prev().html('Мышь'); // меняет содержание элемента с id="1" на "Мышь"
   $('#3').next().html('Кот'); // меняет содержание элемента с id="4" на "Кот"
</script>

Результат выполнения такого кода будет таким:

<div id="1">Мышь</div>
<div id="2">а котята ещё выше.</div>
<div id="3">Кот пошёл за молоком,</div>
<div id="4">Кот</div>

Первый и последний вложенный элемент (first, last)

Методы first и last находят первый и последний элемент внутри родительского. Продемонстрируем их работу, модифицировав предыдущий применр.

<div>Тише, мыши, кот на крыше</div>
<div>а котята ещё выше.</div>
<div>Кот пошёл за молоком,</div>
<div>а котята кувырком.</div>
<script>
   $('div').first().html('Мышь'); // содержание первого элемента меняется на "Мышь"
   $('div').last().html('Кот'); // содержание последнего элемента меняется на "Кот"
</script>

Код $(‘div’) вернёт ссылки на все div элементы. Но first и last отфильтруют первый и последний из них, поэтому метод html будет применён только к первому и последнему div:

<div>Мышь</div>
<div>а котята ещё выше.</div>
<div>Кот пошёл за молоком,</div>
<div>Кот</div>

Обращение к родительскому элементу (parent)

В библиотеке jQuery есть удобный метод для обращения к родительскому элементу. Это метод parent. Благодаря ему не обязательно придумывать селектор, чтобы выбрать родительских элемент относительно текущего. Достаточно использовать этот метод. Попробуем продемонстрировать это на примере:

<div>
   <span id="mouse">Тише, мыши, кот на крыше</span>
</div>
<script>
   $('#mouse').parent().append('<span>а котята ещё выше.</span>');
</script>

В примере сначала выбирается элемент с id=»mouse». Затем с помощью метода «parent» происходит обращение к его родительскому элементу. И только потом происходит вставка HTML кода в конец элемента с помощью метода «append». Результат выполнения кода:

<div>
   <span id="mouse">Тише, мыши, кот на крыше</span>
   <span>а котята ещё выше.</span>
</div>

Поиск элемента внутри родителя (find)

Порой надо найти элементы внутри уже найденных. Для этого можно использовать метод find. Продемонстрируем его работу наглядно:

<div id="mouse">
   <div>Тише, мыши, кот на крыше</div>
   <div>а котята ещё выше.</div>
   <div id="cat">Кот пошёл за молоком</div>
</div>
<script>
   $('#mouse').find('#cat').append('!!!');
</script>

В результате выполнения этого кода элементу с id=»cat», который находится внутри элемента с id=»mouse», будет в конец дописаны «!!!»:

<div id="mouse">
   <div>Тише, мыши, кот на крыше</div>
   <div>а котята ещё выше.</div>
   <div id="cat">Кот пошёл за молоком!!!</div>
</div>

Понравилась статья? Поделить с друзьями:
  • Наговор как найти хорошую работу
  • Как найти sin 225 градусов
  • Как найти нагрузку с сопротивлением
  • Как найти дешевое жилье в израиле
  • Как найти робота на пульте управления