我已经为此做过相当多的研究,但我无法理解它。
有一个父div .container。其中有许多子div具有不同的文本。 .container外面有两个按钮。一个用于动态创建和附加具有特定文本的子元素。另一种方法是删除具有特定文本的子div。
第一次加载页面时一切正常但是当添加一个新的子div(假设有文本xyz)然后使用在textarea中输入xyz并按下删除按钮(编码为删除具有文本xyz的子div)他们没有工作。 示例HTML标记(可能有无数个子div)
<div class="container>
<div class="child1"></div>
<div class="child2"></div>
<div class="child3"></div>
<div class="child4"></div>
</div>
<button class="AppendWithSomeText"></button>
<button class="RemoveDivWithSomeMatchedText"></button>
<textarea></textarea>
用于添加div的jquery
var newdiv = = document.createElement('div');
newdiv.className = 'child';
$(".container").append(newdiv);
$(".container").find(".child").html(textfromtextarea);
// here text from text area is a string stored from user input in textarea
jQuery for remove按钮
$('.container>div:contains("'+textfromtextarea+'")').remove();
//works only first time
答案 0 :(得分:2)
http://codepen.io/dustinpoissant/pen/VYXGwB
<强> HTML 强>
<input type='text' id='input' />
<button onclick='addItem()'>Add</button>
<button onclick='removeItem()'>Remove</button>
<br><br>
<div id='box'></div>
<强>的JavaScript 强>
function addItem(){
$("#box").append("<span>"+$("#input").val();+"</span>");
}
function removeItem(){
var text = $("#input").val();
$("#box span").each(function(i, el){
if($(el).text()==text) $(el).remove();
});
}
答案 1 :(得分:0)
为了保持结构的一致性,我添加了类型为child-number的类。
我希望这是你所期望的。
$(document).ready(function() {
$(".AppendWithSomeText").on("click", function() {
$(".container").append("<div class=child" + ($("[class^='child']").length + 1) + ">" + $(".content").val() + "</div>")
})
$(".RemoveDivWithSomeMatchedText").on("click", function() {
$('.container>div:contains("' + $(".content").val() + '")').remove();
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="container">
<div class="child1">somecontent</div>
<div class="child2">somecontent</div>
<div class="child3">somecontent</div>
<div class="child4">somecontent</div>
</div>
<button class="AppendWithSomeText">add</button>
<button class="RemoveDivWithSomeMatchedText">remove</button>
<textarea class="content"></textarea>