2009-08-07 5 views
0

J'ai besoin de sous-traiter une variable, et non un objet, je connais des objets tels que;sous-chaîne sur un non-objet dans jQuery

$("div#foo").text().substr(0,1); 

Mais j'ai besoin de le faire sur un non-objet, par exemple une variable;

var foo = 'abc'; 
foo = foo.substr(0,1); 

Le deuxième exemple ne fonctionnera pas, car il s'agit d'un non-objet. Le vrai problème est que j'ai besoin de couper le dernier caractère d'une chaîne, alors est-il possible de le faire dans jQuery sur un non-objet?

+0

Par souci de clarté: Une chaîne est un objet en JavaScript. Par souci d'efficacité, il est préférable d'utiliser substring() car cela modifie la chaîne sur laquelle vous agissez. Où substr() renvoie une chaîne modifiée que vous devrez réaffecter. –

Répondre

3
var foo = 'abc'; 
foo.substring(0, 1); 
+0

Wierd cependant, cela a fonctionné. Mais quand je l'ai essayé avant, j'ai "foo.substring n'est pas une fonction" et il m'a dit que je dois le faire sur un objet. Mais tout d'un coup ça marche et maintenant je me sens assez bête parce que c'est la première chose que j'ai essayé, sans succès. xD Merci. –

+0

Avez-vous pris en compte la sous-chaîne correctement? Je fais parfois des subString et cela va s'étouffer. –

+0

'substring' (tout en minuscules) est la syntaxe correcte: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/substring Rappelez-vous que JS est sensible à la casse – RaYell

0

En Javascript, une chaîne est en fait aussi une sorte d'objet. En tant que tel, il a ses propres fonctions membres, et substring() en fait partie. Utilisez la syntaxe RaYell fourni pour obtenir ce que vous voulez :-)

0

Je pense que peut-être que vous recevez ce message (« foo.substring est pas une fonction ») parce que quand vous déclarez la variable foo vous avez écrit $foo au lieu de var foo . C'est la raison pour laquelle il est interprété comme une variable jQuery au lieu d'une variable javascript.