0
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 の変更をテキストに適用するにはどうすればよいですか?

4

6 に答える 6

5

jQuery 関数は.html()jQuery オブジェクトではなく文字列を返すため、.css()使用する関数はありません。ただし、その CSS スタイルをこれらすべての要素に適用する場合は、要素を選択した jQuery オブジェクトで関数を直接<span>呼び出すだけです。.css()

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

提供されたコードに基づいて、不要と思われるため、変数宣言を削除したことに注意してください。また、関数は最初に一致した要素.html()の HTMLのみを返し、すべての要素を返すわけではないことに注意してください。そのため、複数の要素がある場合は、最初の要素の HTML のみが取得されます。<span>

質問の編集に対処するには:

var data = $("span", this).clone().css('font-size', '10pt');
$calPopup.stop().fadeTo(300,1);
$calPopup.empty().append(data);
于 2012-10-01T08:50:54.713 に答える
1

要素自体ではなく、メソッド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-01T08:50:50.313 に答える
1

html() メソッドは、セレクターで指定された最初に一致した要素の HTML テキストを返します。ここでは、jQuery オブジェクトではなくテキストのみを返します

したがって、最初に jQuery オブジェクトを見つけて CSS を適用することをお勧めします

var data = $("span", this);
data.css("font-size","10pt");
于 2012-10-01T08:52:15.337 に答える
0

css を html に適用しないでください ... span に適用する必要があります:

var data = $("span", this).css("font-size","10pt").html(); /*grab all */
于 2012-10-01T08:50:45.833 に答える
0

データを $() でラップして jQuery オブジェクトに変換してみてください

$(data).css('font-size','10pt');
于 2012-10-01T08:51:03.397 に答える
0

フォーマットを実際のスパン要素に適用するだけです。.html() は HTML を文字列形式で取得しているため、.css は機能しません。

スパン全体で .css を実行する場合は、変数を次のように変更するだけですvar data = $("span", this);

于 2012-10-01T08:51:22.943 に答える