2016-09-09 4 views
0

I teilen Ich muss eine Zeichenfolge auseinander nach bestimmten Zeichen.Wie man innherHTML string mit Javascript in bestimmte Teile nach einem bestimmten Zeichen wie ein '+' Zeichen

document.getElementById("result").innerHTML = Monster + "<p id='vault" + loop + "'> || HP: " + HP + "</p>" + " || Defense: " + Def + " || Attack: " + ATK + " || Can it Dodge/Block: " + DB + " || Can it retaliate: " + RET + " || Initative: " + INT + " || Exp: " + MEXP + " <input type='submit' class='new' onclick='Combat(" + loop + ")' value='FIGHT!'></input>" + "<br><br>" + A; 




function Chest(id){ 
    window.open('LootGen.html', '_blank'); 
} 
function Combat(id){ 
    document.getElementById("C").value = document.getElementById("vault" + id).innerHTML; 
} 

Wenn dieser den Wert ausgeführt wird, der entsteht, ist:

| + HP: +20

jedoch nur ich will '20' Teil, halten jetzt daran, dass diese Variable ändert sich und so muss ich Teilstrings verwenden, um diese zweite Zahl nach der + irgendwie zu ziehen. Ich habe folgendes gesehen mit:

var parameter = location.search.substring (1) .split ("&");

Dies funktioniert hier aus irgendeinem Grund nicht, da die var zuerst eine innher html ist. Könnte jemand bitte mich in die Schreibrichtung verweisen, da ich nicht sehr gut darin bin, Dokumente zu lesen.

+0

Sie würden wahrscheinlich besser, wenn Sie JavaScript-Informationen statt javadocs lesen (Java ist Server, Javascript ist Client und sehr unterschiedlich). https://developer.mozilla.org/en-US/docs/Web/JavaScript ist eine hervorragende Ressource dafür. – scrappedcola

+0

google -> 'regexp' – Geisterkirche

Antwort

1
var text = "|+HP:+20"; 
// Break string into an array of strings and grab last element 
var results = text.split('+').pop(); 

Verweise zu entfernen:

0

Mit einer Kombination aus Teilzeichenfolge und lastIndexOf können Sie die Teilzeichenfolge von der letzten Stelle des Auftretens des "+" erhalten.

Beachten Sie, dass die + 1 den Index verschiebt, um das Zeichen "+" auszuschließen. Um es schließen müssen Sie die + 1

function Combat(id){ 
    var vaultInner = document.getElementById("vault" + id).innerHTML; 
    document.getElementById("C").value = vaultInner.substring(vaultInner.lastIndexOf("+") + 1); 
} 
+0

Ich habe eine zweite Antwort geschrieben, die die von Ihnen gepostete Array-Methode verwendet. Var parameters = location.search.substring (1) .split ("&"); –

0

das Codebeispiel wird die Spaltung unter Verwendung würden Sie eine Array von Sachen getrennt durch das Plus

function Combat(id){ 
    //splits into an array 
    var vaultInner = document.getElementById("vault" + id).innerHTML.split("+"); 
    //returns last element 
    document.getElementById("C").value = vaultInner[vaultInner.length -1]; 
} 
+0

Diese Antwort könnte vielleicht vorteilhafter sein, wenn Sie gehen würden Verwenden Sie die anderen Strings innerhalb dieser Funktion oder benötigte andere Logik –

Verwandte Themen