簡體   English   中英

jQuery CSS on html()文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM