如何一次性添加jquery的子属性?

时间:2012-05-14 08:45:35

标签: jquery css

如何一次性添加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>

JQUERY:

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

3 个答案:

答案 0 :(得分:0)

我相信你只是在寻找:

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

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

如果您想将它应用于所有儿童而不仅仅是直接儿童,则必须以递归方式进行。

答案 1 :(得分:0)

这个代码什么时候运行。如果您在使用chrome控制台或firebug加载页面(DOM)后执行它,您应该看到更改。否则,您应该将它放在页面

上的脚本体中的Ready处理程序中
$(document).ready(function() {
  // Handler for .ready() called.
});

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

问题是JS经常在DOM加载之前触发,因此这个元素及其用作选择器的类不存在以进行查询。

答案 2 :(得分:0)

如果您希望将项目类添加到所有子项中,问题并不能说清楚。

如果是这种情况,这是一种方法。

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

这将把项目类添加到所有孩子,甚至是UL中的LI。 :)

请参阅this tinker