#javascript #jquery #css #class #styles
#javascript #jquery #css #класс #стили
Вопрос:
извините, вопрос не имеет смысла, но я объясню. У меня есть две гиперссылки
<a href="" class="menu-link">home</a>
<a href="" class="menu-link">blog</a>
я хочу применить этот стиль
<style>
.menu-link{color:#000;}
</style>
но применимо только к <a href="" class="menu-link">home</a>
тому, как это можно сделать, кроме фактического изменения класса, как показано ниже
<a href="" class="menu-link-1">home</a>
<a href="" class="menu-link-2">blog</a>
Ответ №1:
Если вы не можете изменить разметку, чтобы добавить дополнительный класс, вы можете выбрать элемент по его href
атрибуту, предполагая, что он есть:
a.menu-link[href='home.html'] {
color: #000;
}
Ответ №2:
Вы можете назначить несколько классов одному элементу.
<a href="" class="menu-link home">home</a>
<a href="" class="menu-link">blog</a>
все, что вам нужно, это добавить пробел
<style>
.menu-link.home{color:#000;}
</style>
Ответ №3:
Возможно, это решение будет соответствовать вашим потребностям.
<a href="" class="menu-link black">home</a>
<a href="" class="menu-link">blog</a>
<style>
.menu-link{}
.black {color:#000;}
</style>
Ответ №4:
Предполагая, что вы не можете / не хотите изменять фактическую разметку, попробуйте это (jQuery)
jQuery(function($) {
var home = $("a.menu-link:contains('home')");
// change style
home.css("color", "#000");
// add class
home.addClass("other-class");
// remove class
home.removeClass("menu-link");
// add / change attributes
home.attr("id", "some-id");
});
Комментарии:
1. вместо
.css("color", "#000");
возможно ли применить идентификатор или изменить класс?2. @user1010031 определенно. Как только у вас есть элемент с помощью селектора, вы можете делать с ним все, что захотите
3. как? что такое actuall jquery для этого?
4. @user1010031 Если вам не нужно поддерживать IE6 и ваши ссылки на самом деле имеют
href
атрибуты, ответ Майкла намного приятнее
Ответ №5:
Alt 1
Вы могли бы добавить style
атрибут к этому якорю:
<a href="" class="menu-link" style="color:#000;">home</a>
Alt 2
Или вы могли бы добавить id
к этому якорю:
<a href="" class="menu-link" id="specialstyle">home</a>
и заменить .menu-link
на #specialstyle
в вашем css.
Alt 3
Или вы могли бы дать этому якорю дополнительный class
:
<a href="" class="menu-link menu-link-special">home</a>
и заменить .menu-link
на .menu-link-special
в вашем css.
Ответ №6:
Вы можете добавить другой класс menu-link-1
с нужным вам стилем:
<style>a.home { color: #000; }</style>
<a href="" class="menu-link-1 home">home</a>
<a href="" class="menu-link-2">blog</a>
редактировать: очевидно, что если бы я прочитал вопрос, я бы заметил, что автор не хотел менять классы..
Ответ №7:
Я думаю, что ссылка «home» является первой в этой последовательности, так почему бы не использовать
.menu-link { color: <your_default_color>; }
.menu-link:first-child { color: #000; }