jQuery 追加如果不存在

新手上路,请多包涵

我想附加一个 div 只有当它不存在时。我正在尝试这个但它不起作用:

 $('#method_id').on('change', function (e) {

    if ($(this).find("option:selected").data('method-column-id') != 1) {
        if ($('#column_message').next('div').length)
            $('#column_message')
                    .append('<div id="warning_message" class="alert alert-danger"><strong>Warning!</strong> Installed column and method do not match</div>');
    } else {
        $('.form-group').find('#column_message>.alert').remove();
    }
});

如果我删除第二个 if 子句,它会在每次我选择一个通过第一个 if 子句的选项时附加

这是 HTML

 <!-- Warning message -->
<div class="form-group">
    <label for="group" class="col-md-2 control-label"></label>
    <div id="column_message" class="col-md-6">
    </div>
</div>

原文由 Norgul 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 241
2 个回答

为了检查一个元素是否存在,你需要找到一个只匹配该元素的选择器并检查 jQuery 对象的长度是否等于 0,如下所示:

 if ($('#unique-selector').length === 0) {
    // code to run if it isn't there
}
else {
    // code to run if it is there
}

原文由 Michael Evans 发布,翻译遵循 CC BY-SA 3.0 许可协议

内部 if 应该是 if ($('#column_message').next('div').length===0)if(!$('#column_message').next('div').length)

原文由 Hadas Zeilberger 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏