删除上面的div

时间:2012-12-21 12:00:59

标签: jquery html hide

我有一个看起来像这样的模板。

样本模板

<div id="form-entry">
    <h4>Some heading here</h4>
    <div class="form-field">
        <label>Some Label</label>
        <input type="text" class="some_text" />
    </div>
    <div class="form-field">
        <label>Some Label</label>
        <input type="text" class="some_text" />
    </div>
    <div class="form-field">
        <label>Some Label</label>
        <input type="text" class="some_text" />
    </div>
    <div class="form-field">
        <input type="checkbox" />
        <label>Some Label</label>
    </div>
    <div class="form-field">
        <label>Some Label</label>
        <textarea></textarea>
    </div>
</div>

如果用户选中复选框,我想删除(或隐藏)包含form-field输入的div上方的checkbox div。 HTML会自动呈现,并且没有任何特定的id'sclasses。我该怎么做呢jQuery的位置会有用吗?

JS

$('.form-field input[type=checkbox]').click( function(){
    entity = $(this);
    dad = entity.parent(); // This gets the form-field div element that contains the checkbox
}); 

如何捕获form-field元素上方的dad div元素?

4 个答案:

答案 0 :(得分:7)

$('.form-field input[type=checkbox]').on('change', function(){
    if (this.checked) 
        $(this).closest('.form-field').prev().remove();
}); 

删除包含该复选框的.form_field上方的.form_field(如果已选中)?

答案 1 :(得分:1)

你可以做到

$('#form-entry input[type="checkbox"]').change(function(){
    $(this).parent().prev().remove();
});

Demonstration

答案 2 :(得分:1)

您可以使用以下jQuery:

$('.form-field input[type=checkbox]').click(function() {
    $(this).parent().prev().toggle(); // parent is the checkboxs div, prev returns the previous element in the DOM
});​
每次单击复选框时,

Toggle都会隐藏/显示上一个div。

这是一个显示其工作原理的jsFiddle

答案 3 :(得分:0)

$('.form-field input[type=checkbox]').click( function(){
    entity = $(this);
    dad = entity.parent().prev().remove(); // This gets the form-field div element that contains the checkbox
});