jquery动态id选择器,删除然后添加类

时间:2010-08-04 23:53:04

标签: jquery dynamic jquery-selectors addclass removeclass

我有一个表,所有行都有一个div的单元格,其动态生成的id格式为btn-insertidhere。

当选择表格行时,我想选择此div id,然后删除一个类并将其更改为另一个。这取决于我想要将按钮图像从添加符号更改为删除符号(单击时)。

javascript代码:

  $('*[class^=day] tbody tr[id^=band]').live('click', function() {
        var DivId = $(this).find('div.add').attr('id');
        alert(DivId);

        $('DivId').removeClass('add').addClass('del');
        $('table#fri_myTimes tbody').append($(this)).fadeIn(1000);
        return false;
});

这是动态生成代码的html片段:

<tr id="band-Modest-Mouse">
<td>Modest Mouse</td>
<td>15:25:00</td>
<td>16:10:00</td>
<td>45</td>
<td><div id="btn-Modest-Mouse" class="add">&nbsp;</div></td>
</tr>

如您所见,我想将“添加”类更改为删除“类”。表格中的所有表格行都是这样生成的,因此您可以看到我已经选择了通配符方法,这似乎有效,因为显示的警报显示了正确的div id。我只需要改变课程!

谢谢!

3 个答案:

答案 0 :(得分:7)

您必须通过删除'.attr(id)'部分来获取div的jq对象

var DivId = $(this).find('div.add');
...
$(DivId).removeClass('add').addClass('del');

或在divId选择器中添加#

$("#" + DivId).removeClass('add').addClass('del');

答案 1 :(得分:1)

尝试删除DivId周围的引号。它是一个变量名,不应该在引号中。就这样:

$(DivId).removeClass('add').addClass('del');

答案 2 :(得分:1)

由于您的变量DivId是一个jquery对象,因此根本不需要$()

DivId.removeClass('add').addClass('del');