JQuery CSS en texto html ()

var data = $("span", this).html(); /*grab all */ $calPopup.stop().fadeTo(300,1); $calPopup.html(data); 

Quiero hacer algo como:

 data.css("font-size","10pt"); 

Pero si hago eso, el texto html ni siquiera aparece. El inspector de Chrome dice esto:

 Uncaught TypeError: Object *** has no method 'css' 

¿Cómo puedo aplicar una modificación de CSS al texto?

La función .html() jQuery devuelve un String, no un objeto jQuery, por lo que no hay función .css() para usar. Sin embargo, si desea aplicar ese estilo CSS a todos esos elementos , es tan simple como llamar a su función .css() directamente en el objeto jQuery que los ha seleccionado:

 $('span', this).css('font-size', '10pt'); 

Tenga en cuenta que he eliminado la statement de variables porque, en función del código proporcionado, parece innecesario. También tenga en cuenta que la función .html() devolverá el HTML del primer elemento coincidente solamente, no todos, de modo que si tiene más de un elemento , solo obtendrá el HTML del primero.

Para corregir las ediciones de la pregunta:

 var data = $("span", this).clone().css('font-size', '10pt'); $calPopup.stop().fadeTo(300,1); $calPopup.empty().append(data); 

El método html () devolverá el texto HTML del primer elemento coincidente dado en el selector. Aquí solo devuelve texto y no el objeto jQuery

Así que es mejor que primero encuentre el objeto jQuery y aplique CSS

 var data = $("span", this); data.css("font-size","10pt"); 

estás aplicando el método css() a la cadena devuelta por el método html() y no al elemento en sí.

Hacer en cambio

 var data = $("span", this).css("font-size","10pt").html(); 

o, mejor aún, evite el estilo de javascript: simplemente asigne una clase a su elemento span y permita que una regla css brinde el estilo correcto

 var data = $("span", this).addClass("yourclass").html(); 

CSS

 .yourclass { font-size : 10pt; } 

No aplique el CSS en el html … Debe aplicarlo en el lapso:

 var data = $("span", this).css("font-size","10pt").html(); /*grab all */ 

intente envolver datos con $ () para convertirlo a un objeto jQuery

 $(data).css('font-size','10pt'); 

Solo necesita aplicar su formateo al elemento span real. .html () está obteniendo el HTML en un formato de cadena, por lo que .css no funcionará.

Si desea hacer .css en todo el tramo, simplemente cambie su variable a var data = $("span", this);