显然我的隐藏/显示列功能有问题

时间:2011-11-11 20:18:25

标签: jquery

我已经为与我的表关联的所有td添加了一个类。我创建了一个复选框并使用以下代码选中复选框,取其值只是一个数字,将该数字添加到单词列并将其放入变量中。我有一个类,例如column3。我正在使用我的代码使用复选框的值来构建名称column3。我想让它隐藏那个特定的类。当我警告col值时,它给了我正确的名字。但是,当我尝试执行代码时,列不会隐藏。我不知道它是否与jQuery如何阅读我自己创建的对象有关。任何建议,将不胜感激。这是jQuery的代码。

$("input:checkbox").click(function(){
    if($(this).attr('checked')){
        alert($(this).val());

        var col ='column' + $(this).val();
        col = '".' + col + '"'; 
        alert(col);
        $(col).hide();
    }
    else {
        $(col).show();
    }

3 个答案:

答案 0 :(得分:3)

试试这个:

$("input:checkbox").click(function(){
    var $this = $(this),
        col = '.column' + $this.val();

    if ($this.attr('checked')){
        $(col).hide();
    }
    else {
        $(col).show();
    }
});

主要问题是您使用引号包装了类名,因此您的选择器看起来像这样:$('".column3"')它应该看起来像$('.column3')

此外,您在“if checked”控件中声明col并尝试在else语句中使用它。

答案 1 :(得分:1)

你是否想要做这样的事情:

http://jsfiddle.net/jzJeb/

您无法将"添加到变量col值。例如,你最终得到的是“.column1”而不仅仅是“.column1”。此外,当您尝试显示列时,col变量不在范围内。

答案 2 :(得分:0)

这是一个有用的,我认为你在

中有双引号问题
col = '".' + col + '"'; 

我试过这样,这个有效:

$(document).ready(function(){
     $("input:checkbox").click(function(){
     var col ='.column' + $(this).attr("value");
       if($(this).attr('checked')){
            $(col).hide();
       }
       else {
            $(col).show();
       }
     });
});