2012-04-04 3 views
2

У меня есть идентификатор:Удаление целого числа от идентификатора

div id ="untitled-region-5" 

Я хочу, чтобы захватить этот идентификатор и удалить 4 из него, а затем сделать код с новым идентификатором.

До сих пор я пытаюсь что-то вроде этого, читая о том, как выполнить это:

var n = $(this).attr('id').match(/untitled-region-(\d+)/)[1]; 

Но я не знаю, как удалить 4 из целого числа.

+2

Вы имеете в виду вычесть 4? т. е. 'n - 4'? Вы можете также 'parseInt()' сначала, но JavaScript слабо типизирован и, как правило, просто сортирует это для вас. – Rup

ответ

1
var id = $("div").attr("id"); 
var n = parseInt(id.substring(id.lastIndexOf("-") + 1), 10); 

Я сделал jsFiddle тоже: http://jsfiddle.net/YEWQQ/

+0

Мне нужно вычесть 4 из него, хотя, пожалуйста, см. мой jsFiddle - http://jsfiddle.net/848Qy/2/ Редактировать: - Я вижу, что я сделал не так, но все равно не работает, пожалуйста см. мой jsFiddle - http://jsfiddle.net/848Qy/1/ –

+0

Если вы используете jQuery, не используйте «getElementById» вместо $ («# MY_ID»)! Кстати, что вы имеете в виду под " субстрат 4 "? – MatuDuke

+0

Becaus e идентификатор радио является untitled-region-1, а идентификатор, который должен соответствовать, чтобы показать/скрыть, - untitled-region-5. поэтому для их соответствия мне нужно минус 4 из untitled-region-5. Посмотрите мой код, и вы можете понять, что я имею в виду, по какой-то причине он не работает. –

4

Это все еще строка, поэтому вы не можете легко ее использовать в математике. Некоторые операции работают, потому что они будут неявно преобразовывать значение в число.

Использование parseInt явно выполнить преобразование, так что вы знаете, что у вас есть:

var n = parseInt($(this).attr('id').match(/\d+$/)[0]); 
n -= 4; 
+0

так http://jsfiddle.net/848Qy/ ?? –

+1

Согласен, но вы можете использовать его в математике как есть: 'alert (" untitled-region-5 ".match (/ untitled-region - (\ d +) /) [1] - 4);' отлично работает для меня , – Rup

+0

@JohnVasiliou: Вы не можете назвать переменные с дефисами, т. Е. 'Untitled-region'. Вместо этого вы должны использовать подчеркивание. – mellamokb

1
<div id ="untitled-region-5">​ 

просто взять п и вычесть 4

var n = $('div').attr('id').match(/untitled-region-(\d+)/)[1]; 
var newNumber = n-4; 
$('div').attr('id','untitled-region-'+newNumber); 
Смежные вопросы