Подтвердить что ты не робот

JQuery выбрать первую букву?

Я просто пытаюсь получить jquery, чтобы идентифицировать первую букву абзаца. Как мне это сделать?

Например, у меня есть страница с рядом параграфов на странице. Я бы хотел, чтобы только абзацы, начинающиеся с указанного письма, получили класс "текущий" и все остальные, которые должны быть скрыты. Я в значительной степени знаю, как добавить класс и скрыть других, но я не могу получить jquery, чтобы распознать первую букву.

Во-вторых, можно ли вытащить эту переменную "первая буква" из строки url?

Например, Страница 1 - Список букв. Пользователь нажимает "B", а URL-адрес -

http://domain.com/page2.html?letter=b

И страница2 берет эту переменную (b) и применяет ее к JQuery, показывая только те абзацы

4b9b3361

Ответ 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);
});

ура!