2

我有一个表格,其中的行都有一个 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。我只需要换班!

谢谢!

4

3 回答 3

7

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

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

或在 divId 选择器中添加 #

$("#" + DivId).removeClass('add').addClass('del');
于 2010-08-05T00:04:23.940 回答
1

尝试删除 DivId 周围的引号。它是一个变量名,不应该用引号引起来。像这样:

$(DivId).removeClass('add').addClass('del');
于 2010-08-05T00:00:52.307 回答
1

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

DivId.removeClass('add').addClass('del');
于 2012-05-18T16:14:00.317 回答