("prev ~ next")1.0
Соответствует тем элементам, удовлетворяющим селектору next, которые расположены после элементов, удовлетворяющих селектору prev.
Примеры использования:
$('div ~ span')
| вернет все span-элементы, которые следуют за div-элементами.
|
$('div ~ .lBlock')
| вернет элементы с классом lBlock, которые следуют за div-элементами.
|
$('#foot ~ *')
| вернет элементы, следующие за элементом с идентификатором foot.
|
Помимо селектора ("prev ~ next") существует еще ("prev + next"). Он возвращает не все элементы, расположенные после prev, а только лежащие непосредственно после prev. Это различие демонстрируется в примере 2.
В действии
Пример 1
Выясним, какие трапезы идут после обеда (какие элементы идут после элемента с классом lunch):
~lt~!DOCTYPE html~gt~
~lt~html~gt~
~lt~head~gt~
~lt~script src="https://code.jquery.com/jquery-latest.js"~gt~~lt~/script~gt~
~lt~style~gt~
div{
width: 60px;
height: 60px;
float: left;
padding: 15px;
margin: 5px;
background-color: #EEEEEE;
font-size: 14pt;
}
~lt~/style~gt~
~lt~/head~gt~
~lt~body~gt~
~lt~div class="breakfast"~gt~ Завтрак ~lt~/div~gt~
~lt~div class="lunch"~gt~ Обед ~lt~/div~gt~
~lt~div class="supper"~gt~ Ужин ~lt~/div~gt~
~lt~div class="nightEat"~gt~ Ночной перекус~lt~/div~gt~
~lt~script~gt~
$('.lunch ~ *')
.css('border','3px solid red');
~lt~/script~gt~
~lt~/body~gt~
~lt~/html~gt~
Пример 2
Найдем третий p-элемент внутри каждого li-элемента, на странице. После чего выделим следующие за ними элементы (красной границей). Кроме этого, выделим синими звездочками элементы, найденные с помощью prev+next, вместо prev~next:
~lt~!DOCTYPE~gt~
~lt~html~gt~
~lt~head~gt~
~lt~meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /~gt~
~lt~script src="https://code.jquery.com/jquery-latest.js"~gt~~lt~/script~gt~
~lt~style~gt~
body{
font:10pt Arial,sans-serif;
color:#555;
}
ul{
float:left;
margin:3px; margin-left:15px;
padding:10px 10px 5px 10px;
border:2px solid #ddd;
}
ul.matched{
background:url('/tags/images/matched.png') 0% 2% no-repeat;
}
ul.result{
position:relative;
left:-3px;
border:3px solid #ff8888;
}
li{
position:relative;
float:left;
margin:7px;
padding:2px;
width:60px;
height:60px;
background-color:#e1e1e1;
border:2px solid #e1e1e1;
}
li.matched{
background:#e1e1e1 url('/tags/images/matched.png') 5% 5% no-repeat;
}
li.result{
margin-left:6px;
margin-right:6px;
width:60px;
height:60px;
border:3px solid #ff8888;
}
p{
position:relative;
float:left;
width:16px;
height:16px;
margin:2px;
background-color:#f4f4f4;
font-size:1pt;
}
p.matched{
background:#f4f4f4 url('/tags/images/matched_mini.png') center no-repeat;
}
p.result{
width:12px;
height:12px;
border:2px solid #ff8888;
}
.matched_addit{
background:#f4f4f4 url('/tags/images/matched_mini.png') center no-repeat;
}
.srce{
padding:16px 0;
text-align:center;
}
.srce tt{
color:#0088ff;
}
.tgName{
position:absolute;
top:11px; left:45%;
font-size:8pt;
color:#b2ada1;
}
li .tgName{
top:24px;
left:18px;
}
li p .tgName{
top:0;
left:1px;
font-size:7pt;
}
.top-element{
padding-top:20px;
}
.clear{clear:both}
~lt~/style~gt~
~lt~/head~gt~
~lt~body~gt~
~lt~tt class="tgName"~gt~‹ul›~lt~/tt~gt~
~lt~ul~gt~
~lt~li~gt~~lt~tt class="tgName"~gt~‹li›~lt~/tt~gt~~lt~/li~gt~
~lt~li~gt~~lt~/li~gt~
~lt~li~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~tt class="tgName"~gt~‹p›~lt~/tt~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~/li~gt~
~lt~li~gt~~lt~/li~gt~
~lt~li~gt~~lt~/li~gt~
~lt~div class="clear" /~gt~
~lt~/ul~gt~
~lt~ul~gt~
~lt~li~gt~~lt~/li~gt~
~lt~li~gt~~lt~/li~gt~
~lt~li~gt~~lt~/li~gt~
~lt~li~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~/li~gt~
~lt~li~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~/li~gt~
~lt~div class="clear" /~gt~
~lt~/ul~gt~
~lt~ul~gt~
~lt~li~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~ ~lt~p~gt~~lt~/p~gt~
~lt~/li~gt~
~lt~li~gt~~lt~/li~gt~
~lt~li~gt~~lt~/li~gt~
~lt~li~gt~~lt~/li~gt~
~lt~li~gt~~lt~/li~gt~
~lt~div class="clear" /~gt~
~lt~/ul~gt~
~lt~div class="clear top-element"~gt~~lt~p class="matched"~gt~~lt~/p~gt~ – результат работы селектора prev+next.~lt~/div~gt~
~lt~div class="clear"~gt~~lt~p class="result"~gt~~lt~/p~gt~ – результат работы селектора prev~next.~lt~/div~gt~
~lt~script~gt~
$('li p:nth-child(3) ~ *')
.addClass('result');
$('li p:nth-child(3) + *')
.addClass('matched');
~lt~/script~gt~
~lt~/body~gt~
~lt~/html~gt~
Ссылки