0

我有一个侧边栏导航,在页面的一侧列出了博客条目标题。我正在尝试编写一些 jquery 来检查当前完整博客条目页面标题中的文本,并将其与侧边栏导航中的相应标题相匹配,以便我可以应用一个类来设置活动状态链接的样式......但我不太明白!这是一个示例页面的链接:http: //ncw-commercial.com/property-listings/eastpoint-plaza-lot.html,下面是我当前的代码。我也尝试过使用 :contains 但无法弄清楚如何让它与变量而不是直接文本一起使用。

$('.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");
}); 
4

1 回答 1

1

我认为您非常接近(假设选择器是正确的)。只需删除周围的引号activeTitle(否则您将与 string 进行比较"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 编码字符,因此如果遇到更多问题,请找到一个转换它们的库。

于 2010-04-09T19:35:27.010 回答