var data = $("span", this).html(); /*grab all */
$calPopup.stop().fadeTo(300,1);
$calPopup.html(data);我想做一些类似的事情:
data.css("font-size","10pt");但如果我这样做了,html文本甚至都不会出现。Chrome的检查员这样说:
Uncaught TypeError: Object *** has no method 'css' 如何将CSS修改应用于文本?
发布于 2012-10-01 16:50:55
.html() jQuery函数返回一个字符串,而不是jQuery对象,因此没有.css()函数可用。但是,如果希望将CSS样式应用于所有这些<span>元素,只需在选择它们jQuery对象上直接调用.css()函数即可:
$('span', this).css('font-size', '10pt');请注意,我删除了变量声明,因为根据提供的代码,它似乎是不必要的。还要注意,.html()函数将只返回第一个匹配元素的超文本标记语言,而不是所有元素,所以如果有多个<span>元素,则只会返回第一个元素的超文本标记语言。
要解决对问题的编辑:
var data = $("span", this).clone().css('font-size', '10pt');
$calPopup.stop().fadeTo(300,1);
$calPopup.empty().append(data);发布于 2012-10-01 16:50:50
您将css()方法应用于html()方法返回的字符串,而不是元素本身。
改为这样做
var data = $("span", this).css("font-size","10pt").html();或者,更好的方法是避免使用javascript的样式:只需为span元素分配一个类,并让css规则给出正确的样式。
var data = $("span", this).addClass("yourclass").html();CSS
.yourclass {
font-size : 10pt;
}发布于 2012-10-01 16:52:15
html()方法将返回选择器中给定的第一个匹配元素的HTML文本。这里它只返回文本,而不返回jQuery对象
所以最好先找到jQuery对象并应用CSS
var data = $("span", this);
data.css("font-size","10pt");https://stackoverflow.com/questions/12670063
复制相似问题