1

このコードは、最後の div (Div5) でのみテキストを変更することを期待していますが、そうではありません。

<script type="text/javascript" language="javascript">
    $(document).ready(function() {
        $(".blue", "#Div5").text("Hello");
    });
</script>

<form id="form1" runat="server">
<div>

    <div id="Div1" class="blue">AAAA</div>
    <div id="Div2" class="yellow">BBBB</div>
    <div id="Div3" class="blue">CCCC</div>
    <div id="Div4" class="yellow">DDDD</div>
    <div id="Div5" class="blue">EEEE</div>

</div>
</form>

誰かが何が悪いのか知っていますか?

4

7 に答える 7

1

これは div 内で .blue を探しており、意味的には

$("#Div5").find(".blue").text("Hello");

あなたがしたい:

$("#Div5.blue").text("Hello");

...これは次と同等です:

if ($("#Div5").hasClass("blue")) {
    $("#Div5").text("Hello");
}
于 2012-05-21T12:16:00.220 に答える
0

たぶんそうですか?

$("#Div5").text("Hello");
于 2012-05-21T12:16:05.197 に答える
0

コンテキストは、コンテナー要素を指定するために使用されます。あなたの例では、セレクターと同じコンテキスト内の要素を参照しています。

これに単純化できます:

$("#Div5").text("Hello");

または、クラスを明示的に指定する場合は、次のようにします。

$("#Div5.blue").text("Hello");

どちらも同じ結果になります。

于 2012-05-21T12:16:06.913 に答える
0

この場合、コンテキスト (つまり、コンテナー)は使用できません。次のように要素をターゲットにする必要があります。

$("#Div5.blue");
于 2012-05-21T12:16:09.143 に答える
0

あなたは単に必要です

$(document).ready(function() {
    $("#Div5").text("Hello");
});

あなたがしようとしたことは、ID「Div5」のタグblue 内でクラスのタグを見つけることです。ネストされた div がないため、機能しません。

于 2012-05-21T12:16:19.197 に答える
0

どちらもhtmlの同じ要素であるため、これはコンテキストセレクターではありません

 $(".blue", "#Div5")

#div5 の子である .blue アイテムを選択することを意味します

そのためのhtmlは次のようになります

<div id="div5">
<div class="blue"></div>
</div>

$('#div5").text('text'); が必要なだけです。

于 2012-05-21T12:16:41.467 に答える
0

context パラメーターは jQuery オブジェクト、または少なくとも HTMLDOMElement (またはそれらが呼ばれるものは何でも。:P) でなければならないと思います。

jQuery(document).ready(function(){
    var $contextElement = jQuery("#Div5");
    jQuery(".blue", $contextElement).text("Hello");
});

ただし、マークアップから判断すると、コンテキストをまったく使用したくないと思いますが、次のようにセレクターのみを使用したいと思います。

jQuery("#Div5").text("woop woop!");

blueID は一意であるため、クラスをターゲットにする必要さえありません。実際、ID を持つ要素が 2 つあったとしても、Div5jQuery は 1 つ、つまり最初の要素のみを返します。

于 2012-05-21T12:19:01.407 に答える