اجتياز من علامات التجزئة المرجعية (#Bookmark) في jQuery؟
-
27-09-2019 - |
سؤال
أواجه مشكلة في اجتياز المرجعية في jQuery. على وجه التحديد ، HTML التالية:
<a id="comment-1"></a>
<div class="comment">
<h2 class="title"><a href="#comment-1">1st Post</a></h2>
<div class="content">
<p>this is 1st reply to the original post</p>
</div>
<div class="test">1st post second line</div>
</div>
أحاول اجتياز إلى مكان "العنوان" = "العنوان" ، إذا تم هبوط الصفحة مع علامة تصنيف مرجعية في عنوان URL (site.com/test.html#comment-1). ما يلي هو الكود الخاص بي الذي أستخدمه للاختبار:
if(window.location.hash) {
alert ($(window.location.hash).nextAll().html());
}
ينفذ بشكل جيد ، ويعيد HTML المناسب (<h2 class="title"><a href="#co...
)
المشكلة هي إذا قمت بإضافة محدد إليه ($(window.location.hash).next('.title').html()
) أحصل على نتيجة فارغة. لماذا هو كذلك؟ هل Nextall ليس وظيفة العبور الصحيحة؟ (لقد جربت أيضًا Next+Find دون جدوى)
شكرًا!
المحلول
ال $('#comment-1')
المحدد يختار <a>
عنصر. ال next
تنظر الطريقة في عقدة الأخوة التالية لهذا العنصر. لا توجد عقدة مع فئة من "العنوان" ، حتى تحصل على نتيجة فارغة. في مثالك ، العقدة الوحيدة من الأخوة <a>
هو div مع class = "التعليق". لتجد ال <h2 class="title">
العنصر ، يمكنك استخدام EG:
$(window.location.hash).next().children('.title')
نصائح أخرى
هناك مكون إضافي jQuery لذلك: http://github.com/shanbady/jquery-ajaxbookmarke