Bu, birçok kez sorulan sorudaki bir varyasyondur. Herhangi bir eleman verildiğinde, belgesinin tamamında belgesinin tamamında başka bir öğe bulabilmek istiyorum. Bir kardeş olabilir ama daha sonra ortaya çıkan başka bir element de olabilir. Örneğin, ben $.fn.nextInDocument
denir arıyorum işlevini Diyelim Bu açıklamanın uğruna aşağıdaki işaretlemeyiBelirli öğe sonra * tüm * belgedeki sonraki öğe
<div>
<p>Hello</p>
<div>
<p>Foo</p>
<p class="bar">Bar</p>
<p>rawr!</p>
</div>
<p>bop</p>
<input/>
<div>
<p>Another</p>
<div>
<span>something</span>
<p>deep!</p>
</div>
</div>
</div>
<p>last</p>
verilen. Aradım edin:
$('.bar').nextInDocument('p'); // <p>rawr</p>
$('.bar').nextInDocument('p').nextInDocument('p'); // <p>bop</p>
Devam edersek, bu <p>Another</p>
ardından <p>deep!</p>
ve son olarak <p>last</p>
tanınacak.
Böyle bir şey var mı? Bir seçici mi yoksa bir işlev mi olduğu umurumda değil. Sadece işlevselliğe ihtiyacım var.
EDIT Daha fazla zorlu bir soru haline getirmek için DOM yapısını, aradığım şey için daha net hale getirmek üzere güncelledik.
bu işe yarıyor gibi görünüyor. Şimdi birkaç zor durumu test ediyor ... – Jeff
Bu, bugüne kadar attığım her şeye ayak uydurdu. Şu ana kadar ne kadar iyi performans gösterdiğini merak ediyorum, şu anda aşırı büyük sayfalarda çalışmayı planlamıyorum. çok teşekkürler! – Jeff
@Jeff: Muhtemelen optimize edilmiş olabilir: örneğin, her düğüme ait seçiciyi değerlendirmenin olası performans sorunlarının sebebi olduğunu düşünüyorum. Bir darboğaz ortaya çıkarsa sadece bunu yapmak için rahatsız etmenizi öneririm. –