JQuery выбрать первую букву?
Я просто пытаюсь получить jquery, чтобы идентифицировать первую букву абзаца. Как мне это сделать?
Например, у меня есть страница с рядом параграфов на странице. Я бы хотел, чтобы только абзацы, начинающиеся с указанного письма, получили класс "текущий" и все остальные, которые должны быть скрыты. Я в значительной степени знаю, как добавить класс и скрыть других, но я не могу получить jquery, чтобы распознать первую букву.
Во-вторых, можно ли вытащить эту переменную "первая буква" из строки url?
Например,
Страница 1 - Список букв. Пользователь нажимает "B", а URL-адрес -
http://domain.com/page2.html?letter=b
И страница2 берет эту переменную (b) и применяет ее к JQuery, показывая только те абзацы
Ответы
Ответ 1
Try:
jQuery('p').each(function(){
if(jQuery(this).text().substr(0,1).toUpperCase() == 'B'){
jQuery(this).addClass('someclass')
}
})
Вы можете использовать PHP для очистки переменной и ее печати в JS:
<script type="text/javascript">
var letter = '<?php echo (strlen($_GET['letter']) == 1) ? $_GET['letter'] : ''; ?>'
</script>
Или просто возьмите его с помощью document.location
и извлеките его.
Ответ 2
Если вы хотите использовать JavaScript для захвата letter
из строки запроса URL, запустите регулярное выражение на window.location.search
:
var letterParam = window.location.search.match(/letter=([a-z])/i), letter;
if (letterParam)
{
letter = letterParam[1];
}
Чтобы совместить абзацы, начинающиеся с этой буквы, используйте метод charAt()
в строках JavaScript:
if (letter)
{
$('p').each(function()
{
if ($(this).text().charAt(0).toUpperCase() == 'B')
{
// Apply the CSS class or change the style...
}
});
}
Ответ 3
Чтобы скрыть теги <p>
, текст которых не начинается с буквы B
:
$('p').filter(function() {
return $(this).text().charAt(0).toUpperCase() != 'B';
}).hide();
Ответ 4
$('p').hide().filter(function(){return $(this).text().match(/^b/i);}).show();
или отступом
$('p').hide()
.filter(
function(){
return $(this).text().match(/^b/i);
}
)
.show();
удалите i
в матче, если вы хотите, чтобы он был чувствительным к регистру.
и вы можете посмотреть http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html о том, как получить параметры url.
Ответ 5
Я не знаю, применимо ли оно здесь, но я использую это для стилизации первого символа.
$(".menu ul li.page_item a").each(function() {
var text = $(this).html();
var first = $('<span>'+text.charAt(0)+'</span>').addClass('caps');
$(this).html(text.substring(1)).prepend(first);
});
ура!