#javascript #jquery
#javascript #jquery
Вопрос:
Я хочу иметь возможность добавлять class=»st_sharethis» в ссылку меню: рассказать другу на этом сайте http://www.easyspacedesign.com/fh/ConnectBell_ /. Невозможно добавить определенный класс или идентификатор к ссылке меню в используемой нами cms, поэтому для этого придется использовать jquery.
Поэтому мне придется делать это на основе текста в теге span, который находится в теге A.
До сих пор я пытался:
$('.main_menu span:contains("Tell A Friend")').attr('class','st_sharethis');
$('.main_menu span').each(function ()
{
if ($(this).text() == "Tell A Friend")
$(this).attr('id','rev3');
}
ни то, ни другое не сработало.
Комментарии:
1. Вы вообще достигли своей цели. Если это span в теге a, где находится тег a в вашем селекторе jQuery. Попробуйте что-нибудь простое, например, изменить цвет текста, чтобы узнать, попали ли вы в цель, или в последнем примере попробуйте предупредить возвращаемый текст, чтобы увидеть, что это на самом деле текст, который вы проверяете на равенство. Другим вариантом было бы опубликовать HTML здесь, чтобы можно было помочь вам более конкретно, а не только с некоторыми общими соображениями. В последнем примере отсутствуют символы в операторе if, он вообще не будет работать, и не уверен, что вы можете использовать contains подобным образом.
Ответ №1:
Это прекрасно работает для вашей разметки:
$('#menu span:contains("Tell A Friend")')
.addClass('st_sharethis')
.attr('id','rev3');
Живой пример: http://jsfiddle.net/ydFFR /
Ответ №2:
Следующее добавляет класс и идентификатор к элементу.
$('.main_menu span:contains("Tell A Friend")')
.addClass('st_sharethis')
.attr('id', 'rev3');
Ответ №3:
Ваш код в порядке, вам просто нужно добавить «);» в конце!
$('.main_menu span:contains("Tell A Friend")').attr('class','st_sharethis');
$('.main_menu span').each(function ()
{
if ($(this).text() == "Tell A Friend")
$(this).attr('id','rev3');
}
); // ADD this line !
Но, конечно, было бы лучше просто связать команды:
$('.main_menu span:contains("Tell A Friend")')
.attr('class','st_sharethis')
.attr('id','rev3');
Комментарии:
1. Да, я тестировал это, оно интерпретируется как встроенное ‘if’ (n символов не имеют значения в javascript)
Ответ №4:
Если это последний, попробуйте
$('a.main_menu.last').find('span').addClass('st_sharethis');
Ответ №5:
Если этот пункт меню всегда будет последним:
$('#menu dl dt:last a').addClass('myclass');
Кроме того, у вас есть определенный класс last
в этом пункте меню, поэтому вы можете:
$('dt.last').addClass('myClass');
Или вы можете просто проверить содержимое ссылки:
$('#menu dl dt a span:contains("Tell A Friend")').parent().addClass('myClass');