Получить часть строки, используя jQuery - PullRequest
8 голосов
/ 16 сентября 2010

HTML-код:

<div id="block-id-45"></div>

Как получить число "45" строки, используя jQuery ?

Ответы [ 3 ]

31 голосов
/ 16 сентября 2010

К вернуть число в конце атрибута id , использовать

$(this).attr("id").match(/[\d]+$/);

Выше будет возвращено 45, если $(this) равно <div id="block-id-45"></div>

Пример jsFiddle

Выше работает то, что вы получаете идентификатор элемента, используя .attr(), затем вы смотрите на id и используете .match(), чтобы восстановить число в конце./[\d]+$/ является регулярным выражением.[\d] означает одну цифру + означает одну или несколько (из цифр).и $ означает конец строки.


Вы можете использовать эту функцию для извлечения чисел из конца всех div с идентификатором, который начинается с block-id-, используя атрибут начинается с селектора [name^=value] и .each():

Практическое использование:

$(function() {

      // Select all DIS that start with 'block-id-'
      //   and iterate over each of them.
    $("div[id^='block-id-']").each(function() {

          // You could push this data to an array instead.
          // This will display it.
        $("body").append( "Id number: " + 
                            // This is the number at the end
                          $(this).attr("id").match(/[\d]+$/) +
                          "<br/>" );
    });
});​

Пример jsFiddle

8 голосов
/ 16 сентября 2010

Вам не нужен (или особенно не нужен) jQuery для этого (это очень полезно для множества других вещей, но не особенно для этого).Прямой JavaScript и DOM:

var div = document.getElementById('block-id-45');
var n = div.id.lastIndexOf('-');
var target = div.id.substring(n + 1);

Живой пример: http://jsbin.com/osozu

Если вы уже используете jQuery, вы можете заменить первую строку на:

var div = $('#block-id-45')[0];

... но есть мало причин для этого.

1 голос
/ 02 марта 2013

Используя jQuery , просто:

$("[id='block-id-45']").attr("id").split("-")[2]

Для всех идентификаторов блоков - ## вы можете использовать маску из Ответ Питера :

$("[id^='block-id-']").click(function(){

    row_id = $(this).attr("id").split("-")[2];
    .............
    .............
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...