2009-11-06 9 views
15

Voglio rimuovere il primo carattere dal testo del collegamento con jQuery.Come rimuovo il primo carattere dal testo di un collegamento con jQuery?

<span class="test1"> +123.23 </span> 
<span class="test2"> -13.23 </span> 

Desidero rimuovere "+" e "-" da jQuery.

uscita:

<span class="test1"> 123.23 </span> 
<span class="test2"> 13.23 </span> 
+0

Che codice hai scritto per questo e quale è stato il risultato del tuo compito? –

risposta

40
var val = $("span").html(); 
$("span").html(val.substring(1, val.length)); 
+1

Downvoted un passo indietro: 1) questo sostituisce il valore di tutti gli elementi di span con il valore del primo elemento di span. 2) questo esempio ha un errore di sintassi. – BalusC

+0

L'indice di partenza non è corretto. Dovrebbe essere 2. Inoltre, è necessario aggiungere uno spazio iniziale al nuovo valore poiché è ciò che è necessario nell'output. –

+7

Questa risposta è inutilmente complicata. Perché non fare solo $ ('span'). Html(). Sottostringa (1)? –

24
$("span.test1, span.test2").each(function() { 
    $(this).text($(this).text().replace(/[+-]/, "")); 
}); 
+0

La sottostringa +1 è il modo sbagliato per farlo. Nonostante il tick della risposta dell'autore .. questa risposta usando Regex è la risposta giusta! – Evildonald

+3

@Evildonald: perché la sottostringa è cattiva? Sono d'accordo che è meglio usare Regex, ma non chiamerò sottostringa negativa :-) –

+2

Perché il Regex è migliore? Se si sa dove deve avvenire la sostituzione, la sottostringa è migliore di Regex sia dal punto di vista delle prestazioni che della leggibilità. –

2

si può ottenere/impostare l'HTML usando .html() e rimuovere il primo carattere usando .Substring(), penso che sia abbastanza chiaro ora, basta scrivere un codice di 2 (o 3) linee.

7
// get the current text 
text1 = $(".test1").html(); 
// set the text to the substring starting at the third character 
$(".test1").html(text1.substring(2)); // extract to the end of the string 

text2 = $(".test2").html(); 
$(".test2").html(" " + text2.substring(2)); // looks like you want to keep the leading space 
Problemi correlati