html()文本上的JQuery CSS

html()文本上的JQuery CSS,jquery,html,css,Jquery,Html,Css,我想做一些类似的事情: var data = $("span", this).html(); /*grab all */ $calPopup.stop().fadeTo(300,1); $calPopup.html(data); 但是如果我这样做,html文本甚至不会出现。Chrome的检查员说: data.css("font-size","10pt"); 如何将CSS修改应用于文本?不要将CSS应用于html。。。 您必须将其应用于跨度: Uncaught TypeError: Objec

我想做一些类似的事情:

var data = $("span", this).html(); /*grab all */
$calPopup.stop().fadeTo(300,1);
$calPopup.html(data);
但是如果我这样做,html文本甚至不会出现。Chrome的检查员说:

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

如何将CSS修改应用于文本?

不要将CSS应用于html。。。 您必须将其应用于跨度:

Uncaught TypeError: Object *** has no method 'css' 
您将css方法应用于html方法返回的字符串,而不是元素本身

取而代之

var data = $("span", this).css("font-size","10pt").html(); /*grab all */
或者,更好的是,不要使用javascript的样式:只需为span元素分配一个类,并让css规则给出正确的样式

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

jQuery函数返回一个字符串,而不是jQuery对象,因此没有.css函数可供使用。但是,如果您想将该CSS样式应用于所有这些元素,只需直接在选择它们的jQuery对象上调用.CSS函数即可:

.yourclass {
    font-size : 10pt;
}
请注意,我删除了变量声明,因为根据提供的代码,它似乎没有必要。还请注意,.html函数将只返回第一个匹配元素的html,而不是所有元素的html,因此如果您有多个元素,那么您将只获得第一个元素的html

要解决此问题,请执行以下操作:

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

尝试使用$包装数据,将其转换为jQuery对象

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

您只需要将格式应用于实际的span元素。html以字符串格式获取html,因此.css不起作用


如果您想在整个范围内执行.css,只需将变量更改为var data=$span,如下所示

html方法将返回选择器中给定的第一个匹配元素的html文本。在这里,它只返回文本,不返回jQuery对象

所以最好先找到jQuery对象并应用CSS

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

将字符串与HTML和jQuery对象混合使用。试着先读一读。这段代码看起来完全正确,但由于某些原因,它就是不起作用。检查员也没有给我任何错误。我知道这是一个非常广泛的问题,说它不起作用,但是有什么想法吗?请在演示页面/jsfiddle.net/jsbin.com示例上向我们展示您的尝试,并用链接更新您的问题。您能看到我更新的代码吗。我忘了把数据放在某个地方输出。你的代码将如何改变,如果在all@MichaelBenneton克隆元素会更容易,在克隆的版本上调用.css,然后输出它。我将用代码更新我的答案。
$(data).css('font-size','10pt');
var data = $("span", this);
data.css("font-size","10pt");