У меня есть список ссылок на боковой панели в моей теме вики-пространства, который в настоящее время использует jQuery для применения класса к каждой из ссылок на боковой панели на основе URL-адреса после .com /. Вы можете увидеть, как это применяется в приведенном ниже коде ...
<div class="WikiCustomNav WikiElement wiki"><a href="/" class="">Home</a>
<a href="/Calendar" class="calendar">Calendar</a>
<a href="/Science" class="science">Science</a>
<a href="/Language+Arts" class="language-arts">Language Arts</a>
<a href="/Video+Page" class="video-page">Video Page</a>
<a href="/Code+Page" class="code-page">Code Page</a>
<a href="/Geography" class="geography">Geography</a>
<a href="/Western+Day" class="western-day">Delicious Bookmarks</a>
<a href="/Field+Day" class="field-day">Field Day</a>
<a href="/Share+Posts" class="share-posts">Share Posts</a>
<a href="/Audio+Page" class="audio-page">Audio Page</a>
<a href="/Map+Page" class="map-page">Map Page</a>
<a href="/Staff+Olympics" class="staff-olympics">Staff Olympics</a>
<a href="/Scribd+Document" class="scribd-document">Scribd Document</a>
<a href="/Staff+Meetings" class="staff-meetings">Staff Meetings</a>
<a href="/Staff+Phone+Tree" class="staff-phone">Staff Phone Tree</a>
<a href="/Employee+Procedures" class="employee-procedures">Employee Procedures</a>
<a href="/Student+Handbook" class="student-handbook">Student Handbook</a>
<a href="/Table+Sorter" class="table-sorter">Table Sorter</a>
<a href="/Teachers+Tips" class="teachers-tips">Teachers Tips</a>
Вместо применения уникального класса через jQuery на основе URL-адреса, я бы хотел, чтобы он добавил класс "selected" к ссылке, который будет обнаружен через URL. Например, если пользователь перейдет на страницу географии, jQuery определит, просматривается ли этот URL в настоящее время, и, если это так, применяет класс «selected» к ссылке на боковой панели. Итак, это будет выглядеть так ...
<ul>
<li><a href="/Geography" class="selected">Geography</a></li>
<li><a href="/Map+Page">Map Page</a></li>
<li><a href="/Staff+Olympics">Staff Olympics</a></li>
<li><a href="/Scribd+Document">Scribd Document</a></li>
<li><a href="/Staff+Meetings">Staff Meetings</a></li>
<li><a href="/Staff+Phone+Tree">Staff Phone Tree</a></li>
<li><a href="/Employee+Procedures">Employee Procedures</a></li>
<li><a href="/Student+Handbook">Student Handbook</a></li>
<li><a href="/Table+Sorter">Table Sorter</a></li>
<li><a href="/Teachers+Tips">Teachers Tips</a></li>
</ul>
В первом примере кода, который я предоставил выше, вы можете видеть, что там есть неупорядоченный список, только ссылки. Я также хотел бы знать, как я могу обернуть все эти ссылки в неупорядоченный список с каждой ссылкой, включенной в элемент списка, как во втором примере кода. Это относительно легко сделать?
Текущий код jQuery, который у меня есть для боковой панели, находится ниже ...
jQuery("#sidebar br").remove();
jQuery(".wiki_link, .wiki_link_new").attr('class','').each(function(){
var className = jQuery(this).attr('href').substr(1).toLowerCase().split('+').slice(0,2).join('-');
jQuery(this).addClass(className);
});
Спасибо за вашу помощь в этом!
Вот код, который сейчас вызывает конфликт, упомянутый в комментариях ...
jQuery("#sidebar br").remove();
jQuery(".wiki_link, .wiki_link_new").attr("class", "").each(function () {
var a = jQuery(this).attr("href").substr(1).toLowerCase().split("+").slice(0, 2).join("-");
jQuery(this).addClass(a)
});
var $ul = $("<ul></ul>").insertAfter($("div#toc > h1"));
$("a[href^=#toc]").each(function () {
var b = $("<li></li>"),
a = $(this).parent();
b.append(this);
a.remove();
$ul.append(b)
});
var loc = window.location.split("/").slice(-1);
jQuery("a.selected").removeClass("selected");
jQuery("a[href$='" + loc + "']").addClass("selected");
jQuery(".WikiCustomNav").wrapInner("<ul></ul>").find("a").wrap("<li></li>");
});