javascript - .Remove() 无法删除具有集合形式的 id 的文本框

标签 javascript jquery asp.net-mvc

我有一个隐藏的文本框,其 id 是集合的一部分。我以这种方式使用 ID,以便将它们绑定(bind)到我的模型。这是我的代码的简化版本。

<input id="Model.Bed[0].Id" name="Model.Bed[0].Id" type="hidden" value="bed1">

我正在使用 Jquery 删除它,但虽然它不会引发任何错误,但它不会被删除。这是我的代码。

$('#Model.Bed[0].Id').remove();

我错过了什么吗?

最佳答案

您的 jQuery 选择器返回 0 个项目,因为它是一个无效的选择器表达式([ 有不同的含义)

尝试名称选择器。这应该有效

 $("[name='Model.Bed[0].Id']").remove();

请记住,允许多个元素具有相同的名称属性值。因此,请根据您的 DOM 使用。

此外,如果您在一个循环中生成了这个输入元素,并且您在这个循环中有一些按钮用于执行您的删除代码,您应该考虑使用相对选择器。 closest()find() 方法在这种情况下很方便。

例如,

// Register click event with element with css class "someDeleteBtn"
$(".someDeleteBtn").click(function(e){
  e.preventDefault();
   $(this).closest(".containerDiv")  //get to outside container
          .find(".myHdnBed") // find the hidden input with this css class
          .remove();  // remove
});

关于javascript - .Remove() 无法删除具有集合形式的 id 的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42012069/

相关文章:

javascript - 如何将字符串转换为对象以便能够将其作为函数参数传递

jquery - 如何使用 jQuery 更改文本大小写

正则表达式 : Validate phone number

jquery - 删除某个按钮后 div 内没有元素的文本

使用 Slug 的 C# Mvc 通用路由

c# - 任务异步 Controller 方法未命中

javascript - Javascript 中的表单验证

javascript - jquery 手机 : set width and height for desktop browser

javascript - node.js:如何在 forEach 循环中使用异步调用实现路由方法?

c# - 24小时运行服务