通过jQuery添加一个类

时间:2012-04-09 23:26:24

标签: jquery

我有一些由Sigma动态创建的代码,如下所示:

<div id="myGrid1_headDiv" class="gt-head-div">
<div class="gt-head-wrap">
<table id="myGrid1_headTable" class="gt-head-table">
<tbody>
<tr class="gt-hd-row">
<td class="gt-col-mygrid1-uid">
<div class="gt-inner gt-inner-left" unselectable="on" title="#">
<span>#</span>
<div class="gt-hd-tool"><span class="gt-hd-icon"></span>
<span class="gt-hd-button"></span>
<span class="gt-hd-split" style="cursor: col-resize; "></span></div></div></td>
<td class="gt-col-mygrid1-p_deldate">
<div class="gt-inner gt-inner-left" unselectable="on" title="Planned Delivery Date">
<span>Planned Delivery Date</span>
<div class="gt-hd-tool"><span class="gt-hd-icon"></span>
<span class="gt-hd-button"></span>
<span class="gt-hd-split" style="cursor: col-resize; "></span></div></div></td>

我试图定位未分类的跨度(#和计划交付日期),以便为它们设置样式:

  $("div.gt-inner:first-child span")
    {
          $(this).addClass("celltitle");
        };

但没有效果。正如你所看到的,周围还有其他跨越我不想碰的东西。我做错了什么?

===== 使用Sigma Grid的其他人的最终答案:

感谢@minitech的指针,答案是将Sigma Grid的gridOption添加到:

onComplete:function(grid){ 
 $('div.gt-inner > span').addClass('celltitle'); //add cell title after grid load
}

3 个答案:

答案 0 :(得分:1)

您已在其中插入了任意代码块。你需要使用jQuery的.each函数并传递你的函数; jQuery是一个库,而不是语言构造。

$("div.gt-inner:first-child span").each(function() {
    $(this).addClass("celltitle");
});

或者,更简洁,因为addClass(像许多jQuery函数一样)隐式地对整个集合进行操作:

$('div.gt-inner:first-child span').addClass('celltitle');

答案 1 :(得分:0)

像这样使用

$("div.gt-inner:first-child span").addClass("celltitle");

Demo

答案 2 :(得分:0)

我认为这应该有效:

$("div.gt-inner span").addClass("celltitle")

有关详细信息,请查看http://api.jquery.com/addClass/