在点击事件中选择一个元素

时间:2012-10-28 07:52:50

标签: jquery jquery-selectors

我正在尝试更改表格中所选行的类。每行都有相同的类名。只要用户单击图像,类名就会更改。 (想想gmail的已加星标/未加星标的电子邮件)

我有以下代码

$(document).ready(function() {
$(".notSelected").click(function() {
    $(".notSelected").removeClass(".notSelected").addClass(".selected");
    });
});​

编辑:我想标记/突出显示每个选定的行 jsfiddle

有关如何解决此问题的任何建议? 感谢

4 个答案:

答案 0 :(得分:2)

当有人点击.notselected并将其更改为“已选择”时,这会更改课程。 Remove和AddClass需要没有点。此外,您没有选择类名而不是notSelected。

$(document).ready(function() {
    $(".notselected").click(function() {
     $(this).removeClass("notselected").addClass("selected");
    });
});​

请参阅http://jsfiddle.net/J8Ehr/1/

BTW看看toggleClass也许它会帮助你以另一种方式定义它。

另一个评论:你想要改变行类,上面的答案只会改变字段类。如果你想改变行的类,请尝试这样的(未经测试):

$(document).ready(function() {
    $(".notselected").click(function() {
     $(this).parent('tr').removeClass("notselected").addClass("selected");
    });
});​

答案 1 :(得分:1)

您的元素具有notselected个类名,并且您的选择器会尝试查找类为notSelected的元素,同时您也不应将.addClass和{{1}一起使用方法。

removeClass

http://jsfiddle.net/sxY6z/

答案 2 :(得分:0)

您可能正在寻找:

$(document).ready(function() {
$(".notselected").click(function() {
    $(".selected").removeClass("selected").addClass("notselected");
    $(this).removeClass("notselected").addClass("selected");
    });
});​

两个问题。一,您申请的课程为notselected而不是notSelected。二,你在removeClass参数中不需要.。此外,你有MooTools加载在你原来的小提琴,而不是jQuery。

http://jsfiddle.net/J8Ehr/6/

答案 3 :(得分:0)

The name of该类足以添加/删除。删除前缀的点..

还为未选择的

s 设置为小写
$(document).ready(function() {
    $(".notselected").on('click',function() {
        $('.notselected').removeClass("notselected")
            $(this).addClass("selected");
    });
});​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

FIDDLE