0

Jquery ライブラリを使用して JavaScript で基本的な html を独学しようとしています。以下のコードでは、div red 内の p タグと div yellow の外側の他の p タグを変更しようとしています。以下のコードはすべての p タグを黄色に変更しますが、4. を 3. の上に配置すると機能します。理由とこれがhtmlコードである簡単な説明が必要ですhttp://imageshack.us/photo/my-images/29/k9do.jpg/

$(document).ready(function() {
    $("#testbutton").click(function() {
        $("div  p").css("background-color" , "red");
        $("p").css("background-color" , "yellow");
    });
});
4

10 に答える 10

2

これを説明させてください

$("div p").css("background-color" , "red");

上記のコードはbackground-color、div タグ内のすべての p タグに赤を設定します。

今、

$("p").css("background-color" , "yellow");

上記のコードはbackground-color、タグの内側と外側のすべての p タグに黄色を設定しdivます。

さて、逆のプロセスを行うと、

$("p").css("background-color" , "yellow");

background-color最初にタグの内側と外側のすべての p タグに黄色を設定しますdiv

次に、これを行う

$("div p").css("background-color" , "red");

background-colordiv タグ内のすべての p タグに赤を設定しますが、div の外側の p タグには赤を設定しません。したがって、これは機能しますが、最初の方法ではありません。

于 2013-07-05T09:18:18.620 に答える
1

あなたはこの問題について間違った方法で考えています。これらのスタイルの方向がすべて CSS ファイルにある場合、div p方向が方向よりも優先されるpため、内側<p>は赤、外側<p>は黄色になります。

ただし、それはここで行っていることではありません。jQuery は、CSS が最初に読み込まれた後に実行され、ページ全体の CSS スタイル ルールを気にしません (または気にする必要はありません)。jQuery で行ったすべてのスタイル変更は、事前設定されたスタイルをオーバーライドします。

あなたが書いたものを見てみましょう。あなたの最初の命令、

$("div p").css("background-color" , "#FF0000");

<p>「タグ内に存在するすべてのタグを取得し<div>、背景色を赤に設定する」と英語に翻訳されます。2 番目のコマンドは、

$("p").css("background-color" , "yellow");

すべての <p>タグ (先ほど赤くしたものを含む) を取り、それらを黄色にします。

于 2015-06-19T18:08:40.287 に答える
0

4 ( "div p") は 3 ( ) よりも一般的"div p"であるため、3 の後に 4 を配置すると、最初に div にネストされたすべての p を赤で色付けしますが、直後に黄色で色付けします。 4で

于 2013-07-05T09:17:21.950 に答える
0

jQueryscss()関数はstyle属性を設定します。したがって、両方の呼び出しがその属性をいくつかの要素に設定し、互いにオーバーライドするため、マットを注文します。

于 2013-07-05T09:17:28.980 に答える
0
$("div p").css("background-color" , "red");

上記のコード行は、div の下にネストされた p (見つかった) を変更します。cssの構文です。

$("p").css("background-color" , "yellow");

上記のコード行は、HTML の DOM にあるすべての p タグを変更します

于 2013-07-05T09:17:46.700 に答える
0

3 行目は div 内の$("div p")すべての p タグ (カスケード セレクター - 2 番目のタグは最初のタグの内側にある必要があります) を$("p")ターゲットにし、4 行目はすべての段落タグをターゲットにします。異なる色を持つ最善の方法は、実際には 4 を 3 の上に移動することです - 3 はより具体的です。

于 2013-07-05T09:17:58.003 に答える
0

これはCSSの特異性に関するものです。3 行目では、セレクターがa 内のdiv pすべてを赤に設定しています。4行目では、すべてを黄色に設定することでこれをオーバーライドしています(それらが a にあるかどうかに関係なく)。pdiv pdiv

于 2013-07-05T09:18:59.080 に答える