سؤال

لديّ شريط جانبي يسرد عناوين إدخال المدونة على جانب الصفحة. أحاول أن أكتب بعض jQuery التي ستتحقق من النص في عنوان صفحة إدخال المدونة الكاملة الحالية ومطابقةها مع العنوان المقابل في التنقل في الشريط الجانبي حتى أتمكن من تطبيق فصل على نمط رابط الحالة النشط ... لكنني لا أحصل عليه! فيما يلي رابط صفحة مثال: http://ncw-commercial.com/property-listings/eastpoint-plaza-lot.html, وأدلي هو الكود الحالي الخاص بي. لقد حاولت أيضًا استخدام: يحتوي على ولكن لم أستطع معرفة كيفية الحصول على ذلك مع متغير بدلاً من النص المباشر.

$('.single-journal-entry-wrapper .journal-entry .title').each(function(){ 
      var activeTitle = $(this).text();
      $(".feedburnerFeedBlock .headline a").filter(function(index) {
         return $(this).text() == "activeTitle";
      }).parent().addClass("activeTitle");
}); 
هل كانت مفيدة؟

المحلول

أعتقد أنك قريب جدًا جدًا (على افتراض أن المحددات صحيحة). فقط قم بإزالة الاقتباسات حولها activeTitle (وإلا فأنت تقارن بين السلسلة "activeTitle"):

$('.single-journal-entry-wrapper .journal-entry .title a').each(function(){ 
      var activeTitle = $(this).text();
      $("#sidebar1 .section .headline a").filter(function(index) {
         return $(this).text() == activeTitle;
      }).parent().addClass("activeTitle");
});

يمكنك أيضا استخدام :contains() المحدد:

$('.single-journal-entry-wrapper .journal-entry .title a').each(function(){ 
      var activeTitle = $(this).text();
      $("#sidebar1 .section .headline a:contains('" + activeTitle + "')")
      .parent().addClass("activeTitle");
});

الرابط إلى الصفحة لا يساعد كثيرًا. بطريقة ما لا أرى العنوان الذي تريد مطابقة الرابط. آسف.

تحديث:

حسنًا ، لقد اكتشفت ذلك. كانت المشكلة هي أن كلا السلاسل (العنوان واللاحق في الرابط لم يتطابقان لان كان العنوان   فيه (Eastpoint Plaza Lot) حيث لم يكن الرابط في الشريط الجانبي. وعلى الرغم من أن هذا يتم تحويله إلى فارغ إذا اتصلت .text(), ، لا يتطابق بطريقة ما.

الآن يمكن حل هذا عن طريق الحصول على العنوان عبر .html() واستبدال   بمساحة:

$('.single-journal-entry-wrapper .journal-entry .title a').each(function(){ 
      var activeTitle = $(this).html().replace(' ', ' ');
      $("#sidebar1 .section .headline a:contains('" + activeTitle + "')")
      .parent().addClass("activeTitle");    
});

للاختبار ، قمت بنسخ جميع كود HTML الخاص بك وهو يعمل بالنسبة لي الآن. جربها. أعتقد أن المشكلة الأكبر هي أن العناوين قد تحتوي على شخصيات مشفرة HTML فيه ، لذا ابحث عن مكتبة تقوم بتحويلها إذا واجهت المزيد من المشكلات.

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