2010-09-06 3 views
1

У меня есть серия записей с назначенными им идентификаторами. То естьИзвлечь число из строки с помощью jQuery

record1, record2, record3 и т.д.

Я пытаюсь получить идентификатор ссылки быть щелкнул с помощью: -

$("a.removeTier").live('click', function() { 
    var tier = $(this).attr('id').match('/\d+$/'); 
    alert(tier); 
}); 

переменная уровня, должна содержать только числовые значение внутри строки. В настоящее время я получаю нуль.

Любые идеи?

ответ

7

Почему бы просто не использовать slice() или substring()?

var tier = this.id.slice(6); 
// -> 1, 2, 3... 11... 123, etc 

Пример - http://jsfiddle.net/TmBQ8/

PS, вы получаете нулевой в данный момент, потому что вы передаете строку в качестве аргумента, чтобы соответствовать, а не регулярное выражение. Удалите кавычки, например. match(/\d+$/). Также обратите внимание, что в моем примере я пропустил использование обертки jQuery и attr(), так как это длинный путь и не так эффективен, как прямой доступ к свойствам.

1

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

$(this).attr('id').substring("6","7") 

Как было отмечено в комментариях, это работает только для однозначных чисел. Так что вместо этого:

$(this).attr('id').replace("record", "") 
+0

Я не уверен, что это будет работать, поскольку число может стать очень большим. – 2010-09-06 16:09:28

+0

Конечно, вы не знаете, сколько цифр оно будет. В этом случае попробуйте это. $ (this) .attr ('id'). replace ("record", "") – morgancodes

+0

И эй, почему downvote? Это разумное решение. – morgancodes

0

Если ваш идентификатор всегда имеет «запись» перед ним потом ...

$("a.removeTier").live('click', function() { 
    var tier = $(this).attr('id').subString("6"); 
    alert(tier); 
}); 

Если изменить слово «запись» на что-то другое просто изменить 6 позицию первого номера.

Смежные вопросы