【问题标题】:How do I re-append elements after calling remove()?调用 remove() 后如何重新添加元素?
【发布时间】:2014-04-22 01:58:48
【问题描述】:

我有一个 2 下拉列表,我希望第二个下拉列表的值根据用户为第一个下拉列表选择的内容而改变。

$( "#route" ).change(function(){
routeSelect = $(this).val();

$("#clear").remove();

switch(routeSelect){
    case 'Q':
        console.log(routeSelect);
        for(var i=0;i<routeQ.stopTitle.length;i++){
            $("#stopTitle").append("<option id=\"clear \" value="+ routeQ.stopTitle[i].name + ">"+ routeQ.stopTitle[i].name + "</option>");
        }
        break;
    case 'T':
        //$("#clear").remove();
        console.log(routeSelect);
        for(var i=0;i<routeT.stopTitle.length;i++){
            $("#stopTitle").append("<option id=\"clear \" value="+ routeT.stopTitle[i].name + ">"+ routeT.stopTitle[i].name + "</option>");
        }
        break;
    default:
        console.log(routeSelect);
        break;
}
});

当我第一次选择第一个下拉菜单时,此代码有效,但在调用 remove() 之后它不再附加。

例如,我在第一个下拉菜单中选择 Q,我的第二个空下拉菜单正确附加,但是当我选择 T 时,第二个下拉菜单不会改变。

【问题讨论】:

  • 在删除之前尝试将整个内容设置为占位符变量,并在您想要删除的内容时附加该变量。

标签: javascript jquery html web


【解决方案1】:

原来转义字符不起作用,我需要手动添加“清除”。

$("#stopTitle").append('<option id="' + "clear"+ '" value="'+ routeQ.stopTitle[i].name + '">'+ routeQ.stopTitle[i].name + '</option>');

$("#stopTitle").append("<option id=\"clear \" value="+ routeQ.stopTitle[i].name + ">"+ routeQ.stopTitle[i].name + "</option>");

【讨论】:

  • 转义序列没有任何问题。您的原件在id 中有一个额外的空格字符。这个:id=\"clear \" 应该是这个:id=\"clear\"
猜你喜欢
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
  • 1970-01-01
  • 2021-04-04
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 2018-01-06
相关资源
最近更新 更多