我有一个表,所有行都有一个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"> </div></td>
</tr>
如您所见,我想将“添加”类更改为删除“类”。表格中的所有表格行都是这样生成的,因此您可以看到我已经选择了通配符方法,这似乎有效,因为显示的警报显示了正确的div id。我只需要改变课程!
谢谢!
答案 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');