Назначение класса CSS по URL-пути
A jsfiddle настроен для
это решение.
Вот пример использования числовых выражений, если они доступны. Это не относится к вышеуказанному вопросу.
$(function() {
var rgx = /item(\d+)$/,
url = location.pathname,
id = (rgx.test(url)) ? url.match(rgx)[1] : '1';
$("#logoswap").addClass("class" + id);
});
UPDATE:
В свете новых подробностей вам может понадобиться массив значений, которые должны быть получены из имен классов, которые вы намереваетесь использовать, или в точности соответствовать им.
$(function(){
// my favorite way to make string arrays.
var matches = "brand1 brand2 brand3".split(" "),
url = location.pathname.match(/\w+$/)[0], // get the last item
id = matches.indexOf(url),
className = matches[(id > -1) ? id : 0];
$("#logoswap").addClass(className);
});
Чтобы сделать эту работу, вам понадобится несколько вещей на месте. Я предполагаю, что пути будут заканчиваться числом, как мы обрисовали здесь. Значение по умолчанию заканчивается на 1
. Вам нужно, чтобы изображения были доступны. Вам нужно определить стили для каждой возможности.
Настройка CSS
#logoswap {
height : 200px;
width : 200px;
}
.class1 {
background-image : url(/path/to/default.jpg);
}
.class2 {
background-image : url(/path/to/second.jpg);
}
.brand1 {
background-image : url(/path/to/brand/1/logo.jpg);
}
...
без jQuery
если в вашем коде нет jQuery, вам может понадобиться window.onload
.
(function(){
var old = window.onload;
window.onload = function(){
old();
var r = /item(\d+)$/,
url = location.pathname,
id = (r.test(url)) ? url.match(r)[1] : '1';
document.getElementById('logoswap').className += "class" + id;
};
})()
Я просто хочу уделить время
поощряйте любого, кто делает это
тип кода, чтобы привыкнуть к обычному
Выражения и учить их. Они есть
несомненно, наиболее часто используемые
кросс-языковая часть моего развития
арсенал.