Ho una variabile che memorizza il valore css di un margine. Voglio rimuovere il "px" dalla fine in modo che ho solo il numero con cui lavorare. Come posso fare questo?tagliare "px" alla fine di Jquery var
risposta
var x = "1px";
var y = parseInt(x, 10); // specify radix to prevent unpredictable behavior
Utilizzando il metodo String.replace() è un modo semplice:
Perché il downvote? Posso pensare a diversi posti dove parseInt e parseFloat sono troppo schizzinosi per uso generale. –
Eh sì, lo stesso utente ha anche messo in votazione la domanda insieme alla mia risposta prima che Alex Reitbort abbia dato la sua risposta. Probabilmente solo un utente malintenzionato: P –
È meglio usare parseFloat()
Nelle situazioni in cui si hanno i decimali, come 0.5s per la transizione di ritardo, parseInt (x, 10) restituisce zero, dove in contrasto restituisce parseFloat() 0,5
var x = "0.5s";
var y = parseFloat(x); //returns 0.5
La domanda riguarda specificamente i pixel ('0.5px' non è comune come' 0.5s'). –
Opzione 1:
parseInt('200px', 10);
La funzione parseInt() analizza una stringa e restituisce un intero. Non modificare i 10 trovati nella funzione sopra (nota come "radix") a meno che tu non sappia cosa stai facendo.
uscita sarà: 200.
Opzione 2(io personalmente preferisco questa opzione)
parseFloat('200px')
uscita sarà: 200
Il parseFloat (La funzione analizza una stringa e restituisce un numero in virgola mobile.
La funzione parseFloat() determina se il primo carattere nella stringa specificata è un numero. Se lo è, analizza la stringa fino a raggiungere la fine del numero e restituisce il numero come numero, non come stringa.
Il vantaggio dell'opzione 2 è che se si utilizzano numeri decimali (ad esempio 200.32322px) si otterrà il numero restituito con i valori dietro il punto decimale. Utile se hai bisogno di numeri specifici restituiti.
"Un numero intero che rappresenta la radice della stringa sopra menzionata. * Specificare sempre * questo parametro per eliminare la confusione del lettore e * per garantire un comportamento prevedibile *. Diverse implementazioni producono risultati diversi quando una radix non è specificata ". https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt –
A causa di alcuni problemi con IE potresti trovare parseFloat è meglio. Questo perché IE utilizza pixel parziali, come 27.86 anziché 28. – Teegan