我有一个侧边栏导航,列出了页面旁边的博客条目标题。我正在尝试编写一些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");
});
答案 0 :(得分:1)
我认为你非常接近(假设选择器是正确的)。只需移除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编码字符,因此如果遇到更多问题,请找一个可以转换它们的库。