سؤال

أواجه مشكلة في اجتياز المرجعية في 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top