删除和追加DOM

时间:2013-07-26 18:12:17

标签: javascript jquery dom

我现在已经解决了这个问题一段时间了,我似乎无法弄明白。我有一个复选框,选中后,删除包含文本框的div。取消选中该复选框后,上述文本框应返回到该页面。删除工作,但附加没有。

这就是我目前正在使用代码方式:

$('#ResultsNoData1').click(function () {
    var parent = document.getElementById('Results1').parentNode;
    var child = document.getElementById('Results1');

    if (this.checked) {
        parent.removeChild(child);
    }
    else {
        parent.appendChild(child);
    }
});

我的原创设计通过以下方式起作用:

$('#ResultsNoData1').click(function () {
    (this.checked) ? $('.results1').hide() : $('.results1').show();
});

但是,我需要重新创建的功能实际上是从网站上访问此文本框中删除数据,同时隐藏文本框本身。这不提供该功能。

Current example

4 个答案:

答案 0 :(得分:2)

在这里:http://jsfiddle.net/cx96g/5/

您的问题是您尝试在点击中设置父级,但一旦删除子级,它就会失败。

var parent = document.getElementById('Results1').parentNode;
var child = document.getElementById('Results1');
$('#ResultsNoData1').click(function () {
    if (this.checked) {
        node = parent.removeChild(child);
    }
    else {
        parent.appendChild(child);
    }
});

答案 1 :(得分:2)

您需要显示并隐藏TextBox不会删除。

$('#ResultsNoData1').click(function () {    
    if (this.checked) {
        $("#Results1").hide();
    }
    else {
        $("#Results1").show();
    }
});

Working example

答案 2 :(得分:0)

$('#ResultsNoData1').click(function () {
    (this.checked) ? $('#Results1').val('').parent().hide() : $('#Results1').parent().show();
    (this.checked) ? $('.results1casual').hide() : $('.results1casual').show();
});

JSFiddle

答案 3 :(得分:0)

你正在以正确的方式行事但缺少一件小事需要从文本框中删除值。

$('#ResultsNoData1').click(function () {
    (this.checked) ? $('.results1').hide() : $('.results1').show().val("");
});

$('#ResultsNoData1').click(function () {
    (this.checked) ? $('.results1').hide().val("") : $('.results1').show();
});

这是正确的方式(显示/隐藏)textarea。