Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Guima

Criar função jQuery que retorne string

Recommended Posts

Bom dia, caros colegas! :grin:

 

Dias atrás, eu conheci a funcionalidade do jQuery de criar funções e as chamar apenas "concatenando" ao elemento. Decidi, então, aplicar em alguns casos de minha aplicação, porém estou tendo problemas com isso, poderiam me ajudar?

 

Segue minha tentativa, ela retira o texto do id do elemento, retornando o número, que é o index de um array:

 

(function($){
$.fn.indexFrom = function() {
	return this.each(function() {
		var regexId = /^[a-z]+/;
		var id = $(this).attr('id');
		var index = id.replace('-', '').replace(regexId, '');
		return index;
	});
};
})(jQuery);

E chamo:

 

var index = $('#test-id0').indexFrom();

Porém preciso que me retorne uma string, está retornando um objeto. Se coloco um alert() dentro da função com a mesma variável que retorno, ele apresenta o valor que quero.

 

O que preciso é algo como as funções .val() e .html(), nativas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem 2 returns.. não faz sentido, entendeu ?

 

(function($){
$.fn.indexFrom = function() {
		var regexId = /^[a-z]+/;
		var id = $(this).attr('id');
		var index = id.replace('-', '').replace(regexId, '');
		return index;
};
})(jQuery);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Show, consegui dessa maneira! :thumbsup:

 

Agora estou tentando criar uma nova função, qual é a sintaxe?

Tentei com vírgula e ponto e vírgula, mas sem sucesso.

 

(function($){
$.fn.indexFrom = function() {

},
$.fn.addressFrom = function() {

};
})(jQuery);

(function($){
$.fn.indexFrom = function() {

};
$.fn.addressFrom = function() {

};
})(jQuery);

Compartilhar este post


Link para o post
Compartilhar em outros sites

ponto e virgula mesmo.

 

pq você não obteve sucesso ?

deu algum erro no console ? qual ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
marker.addressFrom is not a function

 

marker.addressFrom();

Deixei a função assim:

(function($){
$.fn.indexFrom = function() {
	var regexIndex = /\d+$/;
	var id = $(this).attr('id');
	var index = id.match(regexIndex);
	return index;
};
$.fn.addressFrom = function() {
	alert(this.title);
};
})(jQuery);

Chamando desta maneira:

marker.addressFrom();

 

Essas funções só funcionam em objetos jQuery? Pois, esse marker é um objeto da API do Google Maps.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, só funcionarão em objetos jQuery.

pois o fn é um prototype do jQuery.

 

 

Se você quer fazer em cima do GoogleMaps, você tem q extender o prototype do maps.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.