Questo codice non funziona:jQuery ottenere testo come numero
var number = $(this).find('.number').text();
var current = 600;
if (current > number){
// do something
}
HTML:
<div class="number">400</div>
sembra che ci sia qualche problema con la conversione di text()
dal valore di testo simile a numero.
Qual è la soluzione?
'+' non restituirà zero per un invalido numero, restituirà 'NaN'. IMO, questo lo rende più ideale di * parseInt() *, perché * parseInt * tenterà di trovare un numero all'inizio di una stringa malformata che può risultare in confusione (ad esempio 1.000 diventa 1). '+ str' è come scrivere' Number (str) '. –
Doh, hai ragione. – RoToRa
Qualcosa in cui mi sono imbattuto durante l'uso di parseInt() è che quando ho ottenuto un risultato NaN, avrebbe rovinato i calcoli. Ho risolto questo problema utilizzando un operatore bit a bit. Un esempio è: 'parseInt ($ (this) .find ('. Number'). Text() || 0)' –