Jquery,如何克隆某些keydown上的Node并删除其他某些keydown上的Clone,但不删除父节点

时间:2015-10-08 01:52:41

标签: jquery

我尝试克隆节点并使用某些键删除克隆(一个用于克隆,另一个用于删除)。它的工作,但它也可以删除父节点,这是我不想要的。那么如何只删除子节点?

<!doctype html>
<html>

<head>
<style>
    input.in {
        display: block;
    }
</style>
</head>

<body>
<input type="number" id="in" class="in">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
    $(document).keydown(function(x) {
        if (x.which === 40) {
            var clone = $('#in').clone();
            $('#in').after(clone);
        }
        if (x.which === 38) {
            $('#in').remove(clone);
        }
    });
</script>
</body>

</html>

1 个答案:

答案 0 :(得分:0)

只需添加一个条件来检查它是否是最后一次输入。尝试类似:

<script>
    $(document).keydown(function(x) {
        if (x.which === 40) {
            var clone = $('#in').clone();
            $('#in').after(clone);
        }
        if (x.which === 38) {
            if ($('.in').length > 1) {
                $('#in').remove(clone);
            }
        }
    });
</script>

NOTE:尝试更改逻辑,因为当您克隆节点时,id在每个节点上都是相同的,这不是一个好习惯。您应该避免对ID

使用重复项