Я думаю, что вы очень, очень близки (при условии, что селекторы верны).Просто удалите кавычки вокруг 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, поэтому найдите библиотекукоторые преобразуют их, если вы столкнетесь с большим количеством проблем.