Вы можете попробовать:
var n = $(this).attr('id').match(/link-(\d+)/)[1];
Извлекает атрибут id
, сопоставляется с шаблоном link-(\d+)
(что означает link-
, за которым следует одна или несколько цифр), а затем извлекает первое совпадение подвыражения (часть в скобках \d+
) это должен быть номер, который вы ищете.
Если вам нужно работать с n
как целое число вместо строки, вам следует использовать parseInt
, указав основание 10:
var n = parseInt($(this).attr('id').match(/link-(\d+)/)[1], 10);
Если ваши атрибуты id
не обязательно начинаются с link-
, за которым следуют одна или несколько цифр, и вы хотите перехватить этот случай, а не выдавать ошибку, вы должны проверить возвращаемое значение match
:
var match = $(this).attr('id').match(/link-(\d+)/);
if (match) {
var n = parseInt(match[1], 10);
alert(n);
} else {
// do something else if they don't match
}