0

jqueryで子プロパティを一度に追加するにはどうすればよいですか? 以下のコードなどを試していますが、うまくいきません。

CSS:

.item > ul
{
  margin:0px;
  padding:0px;
}
.item > span
{
  color:gray;
}
.item > span:hover
{
  color:blue;
}

HTML:

<div class="container">
   <span>Text</span>
   <ul>
      <li>Item 1</li>
      <li>Item 2</li>
   </ul>
</div>

Jクエリ:

$(".container").addClass("item");
4

3 に答える 3

0

私はあなたが探しているだけだと思います:

$(".container").children().addClass("item");

http://api.jquery.com/children/

直接の子だけでなく、すべての子に適用したい場合は、再帰的に行う必要があります。

于 2012-05-14T08:48:30.653 に答える
0

このコードはいつ実行されますか。ページ (DOM) がロードされた後に chrome コンソールまたは firebug を使用して実行すると、変更が表示されるはずです。それ以外の場合は、これをページのスクリプト本文の Ready ハンドラーに配置する必要があります

$(document).ready(function() {
  // Handler for .ready() called.
});

http://api.jquery.com/ready/

問題は、DOM がロードされる前に JS が起動することが多いため、セレクターとして使用しているこの要素とそのクラスがまだクエリに存在しないことです。

于 2012-05-14T08:51:19.370 に答える
0

item クラスをすべての子に追加したい場合、質問は実際には明確ではありません。

もしそうなら、これはそれを行う1つの方法です。

$('.container').children().each(function(){
    if($(this).has('li'))
       $(this).children().addClass('item');
    $(this).addClass('item');
});

これにより、UL 内の LI を含むすべての子に item-class が追加されます。:)

このティンカーを参照してください

于 2012-05-14T08:56:20.540 に答える