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