2013-05-14 14 views
26

Ho un div con una stringa di contenuto in esso. Il contenuto non è memorizzato in una variabile e vorrei rimuovere l'ultimo carattere del testo in questo div. Qualche aiuto per favore?Javascript: come rimuovere l'ultimo carattere da un div o una stringa?

Maggiori informazioni:


Ho un campo di testo, ed entrando testo nel campo di testo, il testo appare in un div in gran forma scritta. Quando l'utente preme il tasto back-space, voglio che l'ultimo carattere nel div sia cancellato. Sto principalmente usando jQuery per raggiungere questo obiettivo. Qui è il mio codice:

$(document).ready(function(){ 
    $("#theInput").focus(); //theInput is the text field 

    $('#theInput').on('keypress', printKeyPress); 

    function printKeyPress(event) 
    { 
     //#mainn is the div to hold the text 
     $('#mainn').append(String.fromCharCode(event.keyCode)); 
     if(event.keyCode ==8) //if backspace key, do below 
     { 
      $('#mainn').empty(); //my issue is located here...I think 
     } 
    } 

}); 

ho tentato $('#mainn').text.slice(0,-1);

Inoltre ho provato a memorizzare il valore di #theInput in una variabile e poi stamparlo, ma che non ha funzionato. Qualche idea ?

+0

Perché non inserire il valore di input in div? – jarvanJiang

+0

Solo cercando di imparare tutto. :) –

+0

Ottima domanda: ho trovato molte risposte su come tagliare i caratteri da una stringa. Hai formulato la tua domanda per aiutarmi a trovarla con la ricerca. Grazie! – Jason

risposta

57
$('#mainn').text(function (_,txt) { 
    return txt.slice(0, -1); 
}); 

demo -->http://jsfiddle.net/d72ML/8/

+7

Non chiamare 'text()' due volte, inutilmente: '$ ('# mainn'). Text (funzione (i, t) {return t.slice (-1);});' –

+0

Nessun suggerimento funziona per me. –

+2

Ho capito il problema. Il codice tasto BACKSPACE non si registra quando viene eseguito all'interno della casella di testo per qualche motivo. Il codice che hai suggerito funziona perfettamente, è solo che il mio codice precedente non è funzionale. Grazie: D –

6

Are u sicuri u vuole rimuovere solo ultimo carattere. Cosa succede se l'utente preme backspace dal centro della parola. È meglio ottenere il valore dal campo e sostituire l'html div. On keyup

$("#div").html($("#input").val()); 
+0

L'ho considerato un'opzione, ma non ho mai nemmeno pensato al backspacing dal centro! Grazie per il suggerimento: D –