1

「this」にクラス「search_init」が含まれている場合、マークアップ自体に複数のクラスが適用されているため、そのクラスのみが置き換えられるように、以下のコードを変更しようとしています。~= と ^= を試しましたが、() がないというエラーが表示されます。

$("tfoot input").focus( function () {
            if ( this.className == "search_init" )  {
                this.className = "";
                this.value = "";
            }
        } );
4

3 に答える 3

5

これを試してください:

$("tfoot input").focus( function () {
    var $this = $(this);
    if ( $this.hasClass("search_init") )  {
        $this.removeClass("search_int").val('');
    }
});
于 2010-02-13T15:28:36.783 に答える
1

ワンライナーである必要があります:

$('tfoo input.search_init').focus(function(e) {$(this).removeClass('search_init').val('');});

余談ですが、.search_init:focuscss メタクラスを使用してスタイルを変更できます。

于 2010-02-14T00:26:29.907 に答える
1
$("tfoot input.search_init").focus( function () {
                $(this).removeClass("search_init");
                this.value = "";
            }
        } );

~= "スペースで区切られた、指定された単語を含む値を持つ指定された属性を持つ要素を選択します。" これは機能しますが、クラス属性自体をいじるよりも、組み込みのクラスセレクターを使用する方がはるかに理にかなっています。^= と同様に、「指定された文字列で始まる値を持つ指定された属性を持つ要素を選択します」。

于 2010-02-13T15:26:21.543 に答える