防止附加的副本,并用上一个替换

时间:2016-05-11 09:17:52

标签: jquery onclick append

我有一个附加功能,如下所示: -



function solve() {
var equ = $('#equ').val();
var names = equ.match(/[a-zA-z]/g).join("");
var list = $("#names-list");
var parent = list.parent();
list.detach().empty().each(function(i){
    for (var x = 0; x < names.length; x++){
        var one = $("#demo").append('<input type="radio" id="radio" name="demo" value="'+names[x]+'">'+names[x]);
        if (x == names.length - 1){
            $(this).appendTo(parent);
            
        }
    }
});
  }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="text" value="10x-3y+9t=0" id="equ"><button onclick="solve()">append</button>
<div id="parent"> <ul id="names-list"></ul></div>
<p id="demo" ></p>
&#13;
&#13;
&#13;

单击附加按钮值时成功存在并单击第二次相同的值是重复的。如何停止重复的值,并在单击附加按钮之前清除demo中的先前显示的值。请正确我的代码有助于解决我的问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

当您想要插入元素时,可以使用 appendappendTo。如果你只想追加一次那么你应该使用jQuery的html()方法。下面是代码。

function solve() {
var equ = $('#equ').val();
var names = equ.match(/[a-zA-z]/g).join("");
var list = $("#names-list");
var parent = list.parent();
list.detach().empty().each(function(i){
    for (var x = 0; x < names.length; x++){
        var one = $("#demo").append('<input type="radio" id="radio" name="demo" value="'+names[x]+'">'+names[x]);
        if (x == names.length - 1){
            $(this).html(parent);
            
        }
    }
});
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="text" value="10x-3y+9t=0" id="equ"><button onclick="solve()">append</button>
<div id="parent"> <ul id="names-list"></ul></div>
<p id="demo" ></p>