我正在尝试使用复选框添加和删除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表示的一个开关)。
如果有人可以帮助我, 感谢。
答案 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();
});
});