jQuery-删除以前隐藏的输入

jQuery-删除以前隐藏的输入,jquery,Jquery,下面的代码是动态生成的,由三个隐藏输入和span标记组成。可能会添加多个这样的选项 <input type="hidden" name="activeTime[]" value="11:30" /> <input type="hidden" name="activeVenp[]" value="10" /> <input type="hidden" name="activeArtp[]" value="20" /> <span class="tag"&g

下面的代码是动态生成的,由三个隐藏输入和span标记组成。可能会添加多个这样的选项

<input type="hidden" name="activeTime[]" value="11:30" />
<input type="hidden" name="activeVenp[]" value="10" />
<input type="hidden" name="activeArtp[]" value="20" />
<span class="tag">11:30
  <a class="tag-addon removeActive"><i class="fe fe-x"></i></a>
</span>
父标记(范围)确实被删除,但隐藏的输入仍然存在。很明显,我的做法是错误的,似乎无法纠正它。

使用
prevAll()

$(“#activeReadingsDisplay”)。在(“单击”,“移除激活”,函数()上{
$(this).parent('span').prevAll('input:hidden').remove();
$(this.parent('span').remove();
});

11:30
X

在@User863答案的帮助下,我发现了这个问题,我是这样实现的:

$(this).parent().prevUntil('span').remove();

这将删除提供HTML的隐藏输入字段:

function removeHiddenInput() {
    $(this).parent().prevAll('input[type=hidden]').remove();
}

$('.removeActive').on('click', removeHiddenInput);

这可以通过以下方式实现:

  • 使用
    closest()
  • 使用
    prevAll()
  • 使用
    addBack()
    将先前的元素匹配与初始选择器堆栈(即.tag元素)合并
  • remove()
  • $(文档).ready(函数(){
    $('activeReadingsDisplay')。打开('click','removeActive',函数(){
    $(this).closest('.tag').prevAll('input').addBack().remove();
    });
    });
    
    .tag{
    边框:1px实心;
    填充:.25rem;
    }
    .标签插件{
    光标:指针;
    }
    
    11:30
    X
    
    $(this).parent()将是带有class
    标记的span。
    
    function removeHiddenInput() {
        $(this).parent().prevAll('input[type=hidden]').remove();
    }
    
    $('.removeActive').on('click', removeHiddenInput);