首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >html()文本上的JQuery CSS

html()文本上的JQuery CSS
EN

Stack Overflow用户
提问于 2012-10-01 16:48:59
回答 6查看 2.4K关注 0票数 0
代码语言:javascript
运行
复制
var data = $("span", this).html(); /*grab all */
$calPopup.stop().fadeTo(300,1);
$calPopup.html(data);

我想做一些类似的事情:

代码语言:javascript
运行
复制
data.css("font-size","10pt");

但如果我这样做了,html文本甚至都不会出现。Chrome的检查员这样说:

代码语言:javascript
运行
复制
Uncaught TypeError: Object *** has no method 'css' 

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

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-10-01 16:50:55

.html() jQuery函数返回一个字符串,而不是jQuery对象,因此没有.css()函数可用。但是,如果希望将CSS样式应用于所有这些<span>元素,只需在选择它们jQuery对象上直接调用.css()函数即可:

代码语言:javascript
运行
复制
$('span', this).css('font-size', '10pt');

请注意,我删除了变量声明,因为根据提供的代码,它似乎是不必要的。还要注意,.html()函数将只返回第一个匹配元素的超文本标记语言,而不是所有元素,所以如果有多个<span>元素,则只会返回第一个元素的超文本标记语言。

要解决对问题的编辑:

代码语言:javascript
运行
复制
var data = $("span", this).clone().css('font-size', '10pt');
$calPopup.stop().fadeTo(300,1);
$calPopup.empty().append(data);
票数 5
EN

Stack Overflow用户

发布于 2012-10-01 16:50:50

您将css()方法应用于html()方法返回的字符串,而不是元素本身。

改为这样做

代码语言:javascript
运行
复制
var data = $("span", this).css("font-size","10pt").html();

或者,更好的方法是避免使用javascript的样式:只需为span元素分配一个类,并让css规则给出正确的样式。

代码语言:javascript
运行
复制
var data = $("span", this).addClass("yourclass").html();

CSS

代码语言:javascript
运行
复制
.yourclass {
    font-size : 10pt;
}
票数 1
EN

Stack Overflow用户

发布于 2012-10-01 16:52:15

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

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

代码语言:javascript
运行
复制
var data = $("span", this);
data.css("font-size","10pt");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12670063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档