I have a menu with links. The links are placed inside a table. Each link is placed in a Create a class called note: you will need to use Try this: Your current code is That will change all tds in the table. Instead use To make the other ones revert back, use the You should refer to the current element and not all elements matching your selector. I´d also recommend you to use CSS classes instead of setting the CSS properties this way. That would be something like; together with; EDIT The psuedo selector Created a jsFiddle that uses an I´m also using event.preventDefault() to not follow the link as this probably would reload the page and not include the class for the selected/active link. If you want to follow the link and have the page reload you should use server side code to render that HTML.. I want to change the background color of the
.highlight
and set it with the desired background color, then just add/remove the class accordingly: http://jsfiddle.net/DdG8m/4/$(function() {
$('#mainMenu td').click(function(e) {
$('#mainMenu td').removeClass('highlight');
$(this).addClass('highlight');
});
});
!important
on your .highlight
class to override any default ones.$(function() {
$('td').click(function() {
$(this).css('backgroundColor', '#EDEDED');
});
});
$(function() {
$("#mainMenu td").click(function() {
$("#mainMenu td").css('background-color', '#EDEDED');
});
});
$(this)
inside your function to select the element that triggered the click event.$(function() {
$("#mainMenu td").click(function() {
$(this).css('background-color', '#EDEDED');
});
});
siblings()
selector to select all tds except the clicked one.$(function() {
$("#mainMenu td").click(function() {
$(this).css('background-color', '#EDEDED')
.siblings().css('background-color', '#FFFFFF');
});
});
$("#mainMenu td").click(function() {
$(this).css('background-color', '#EDEDED');
});
$("#mainMenu td").click(function() {
$(this).addClass('selected');
});
#mainMenu td.selected {
background-color: #EDEDED;
}
:visited
should only be used on links (a
) and you should not use table
s more than you really need to.ul
list instead of the table and display: block
on links to fill the entire parent li
element.$("#mainMenu a").click(function(e) {
e.preventDefault(); // Don´t follow the link
$("#mainMenu a").removeClass('selected'); // Remove class on all menu items
$(this).addClass('selected'); // Add class to current menu item
});