[英]JQuery CSS on html() text
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修改?
.html()
jQuery函數返回一個String,而不是jQuery對象,因此沒有要使用的.css()
函數。 但是,如果要將CSS樣式應用於所有這些<span>
元素,則就像直接在選擇了它們的jQuery對象上調用.css()
函數一樣簡單:
$('span', this).css('font-size', '10pt');
請注意,我刪除了變量聲明,因為根據提供的代碼,這似乎是不必要的。 還要注意, .html()
函數將僅返回第一個匹配元素的HTML,而不是全部返回,因此,如果您有多個<span>
元素,則只會獲得第一個匹配元素的HTML。
解決該問題的方法:
var data = $("span", this).clone().css('font-size', '10pt');
$calPopup.stop().fadeTo(300,1);
$calPopup.empty().append(data);
您將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;
}
html()方法將返回選擇器中給定的第一個匹配元素的HTML文本。 在這里,它僅返回文本,而不返回jQuery對象
所以最好先找到jQuery對象並應用CSS
var data = $("span", this);
data.css("font-size","10pt");
不要在html上應用css ...您必須在span上應用它:
var data = $("span", this).css("font-size","10pt").html(); /*grab all */
嘗試用$()包裝數據以將其轉換為jQuery對象
$(data).css('font-size','10pt');
您只需要將格式應用於實際的span元素即可。 .html()正在獲取字符串格式的HTML,因此.css無法正常工作。
如果要在整個范圍內執行.css,只需將變量更改為var data = $("span", this);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.