2012-04-04 12 views
2

Entfernen habe ich eine ID:eine ganze Zahl von einer ID

div id ="untitled-region-5" 

ich diese ID greifen wollen und 4 aus ihr entfernen, und dann mit dem neuen id einige Code zu tun.

Bisher versuche ich so etwas wie dies aus der Lektüre darüber, wie diese auszuführen:

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

Aber ich weiß nicht, wie 4 aus der ganzen Zahl zu entfernen.

+2

Sie meinen 4 subtrahieren? d.h. "n - 4"? Sie könnten auch 'parseInt()' die Zeichenfolge zuerst, aber JavaScript ist schwach typisiert und wird in der Regel nur für Sie sortieren. – Rup

Antwort

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

Ich habe ein jsFiddle Auch: http://jsfiddle.net/YEWQQ/

+0

Ich muss jedoch davon 4 subtrahieren, siehe mein jsFiddle - http://jsfiddle.net/848Qy/2/ Edit: - Ich sehe, was ich falsch gemacht habe, aber es funktioniert immer noch nicht, bitte siehe mein jsFiddle - http://jsfiddle.net/848Qy/1/ –

+0

Wenn Sie jQuery verwenden, verwenden Sie nicht "getElementById" stattdessen $ ("# MY_ID"). Übrigens, was meinst du mit " Subtrahieren 4 "? – MatuDuke

+0

Becaus Die ID des Funkgeräts ist unbenannt-Region-1 und die ID, die übereinstimmen sollte, um das Anzeigen/Verbergen zu ermöglichen, ist unbenannte Region-5. Um sie passend zu machen, muss ich minus 4 von untitled-region-5. Bitte sehen Sie meinen Code und Sie verstehen vielleicht mehr, was ich meine, aus irgendeinem Grund funktioniert es nicht. –

4

Es ist immer noch eine Zeichenfolge, deshalb können Sie es nicht einfach in Mathematik verwenden. Einige Operationen funktionieren, weil sie den Wert implizit in eine Zahl umwandeln.

Verwenden parseInt explizit die Konvertierung zu tun, so dass Sie wissen, was Sie haben:

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

so http://jsfiddle.net/848Qy/ ?? –

+1

Einverstanden, aber Sie können es in Mathematik verwenden, wie es ist: 'alert (" untitled-region-5 ".match (/ untitled-region - (\ d +) /) [1] - 4);' funktioniert gut für mich . – Rup

+0

@ JohnVasiliou: Variablen mit Bindestrichen, d. H. "Untitled-region", können nicht benannt werden. Sie sollten stattdessen einen Unterstrich verwenden. – mellamokb

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

nehmen nur n und subtrahieren 4

var n = $('div').attr('id').match(/untitled-region-(\d+)/)[1]; 
var newNumber = n-4; 
$('div').attr('id','untitled-region-'+newNumber); 
Verwandte Themen