Jquery / CGI:复选框追加/删除div

时间:2011-04-27 11:58:03

标签: jquery perl checkbox cgi

我正在尝试使用复选框添加和删除div 这个脚本的一些帮助是值得注意的:

$(document).ready(function() {

            $('input:checkbox').change(function(){
                 if( $(this).is(':checked') ){
                        var nom = $(this).attr("value");
                        $('body').append($("<div id="+nom+">Switch "+nom+"</div>"));
                }else{
                        $("#" + nom).remove();
                }
        });

else中,remove()不起作用,选择器出现问题,不知道如何处理变量,我在网上搜索并没有找到任何内容。 /> 我的第二个问题是附加,它有效,我可以添加一个新的div,但我正在使用Perl / CGI,我想添加一个div:my $switch1 = SwitchGUI->new("switch-rdc-7", 24, 2);(这是一个html表示的一个开关)。

如果有人可以帮助我, 感谢。

3 个答案:

答案 0 :(得分:1)

由于您只为“if子句”中的nom变量赋值,因此该变量将始终在“else子句”中未定义。这意味着你选择了“#undefined”,它不存在,所以什么都没有删除。

我认为如果你把你的变量的初始化(不仅是自动发生的定义)放在if / else结构之外,它会起作用:

$(function() {
    $('input:checkbox').change(function(){
        var nom = $(this).attr("value");
        if ( $(this).is(':checked') ) {
            $('body').append($("<div id="+nom+">Switch "+nom+"</div>"));
        } 
        else {
            $("#" + nom).remove();
        }
    });

至于你的第二个问题:

我不熟悉你所谈论的服务器端“切换”的事情。但是当您的javascript在客户端上运行时,您只需重新创建SwitchGUI正在创建的内容。例如。首先使用SwitchGUI创建你的GUI,然后查看生成的html代码,并在你现在创建你的div的javascript中重新创建它。

答案 1 :(得分:0)

乍一看,看起来var nom应该在if块之外声明。

答案 2 :(得分:0)

你走了。这应该有效:

$(function() {

    $('input:checkbox').change(function(){
        var nom = $(this).attr("value");

    if( $(this).is(':checked') )
            $('body').append($("<div id="+nom+">Switch "+nom+"</div>"));
    else
            $("#" + nom).remove();
    });
});