检查是否已在contenteditable div中删除元素(文本)

时间:2017-09-25 03:54:33

标签: javascript jquery dom

您好我正在使用jquery来检测是否已将@符号插入到可信任的div中。检测到此情况时,会向服务器触发ajax请求以检索用户列表。然后用户点击用户名(功能adduser将触发),它将在div中创建一个禁用的textarea。 然后我动态创建一个输入,并将用户的id选为值(通知他)

我遇到的问题是,如果我从contenteditable div中删除textarea(一个用户名),我怎么知道textarea是什么,所以删除输入哪个用户id为值?

我的剧本:

function adduser(fname, lname, id, q)
	{
		var fname = fname;
		var lname = lname;
		var id = id;
		var word = '@' + q;
		var iid = 'id' + id;
	
	  var old=$("#contentbox").html();
		var content=old.replace(word,""); 
		
    $("#contentbox").html(content);
		
    var E="<textarea class='textareamention' name="+id+" id="+iid+"  disabled >"+fname+"</textarea>";
				
    $("#contentbox").append(E);
				
	  $('<input/>').attr({ type: 'text', name: 'mention[]', id: id, value: id}).appendTo('#post');
	}

我满意的div id是contentbox。

谢谢

1 个答案:

答案 0 :(得分:0)

要删除元素,您可以使用remove()方法或只使用hide()元素。

例如:

$("#input_id").remove();

或者

$("#input_id").hide();

正如我从您的代码中看到的那样,您正在动态生成TextArea。因此,与此同时,您可以创建一个事件,如下所示。

如果要检测是否删除了某个特定元素,则必须先设置该事件。

$("#myTextArea").on("remove", function () {
    console.log("Element was removed");
})

更新

这是一个有效的 FIDDLE

注意:为了使用remove()事件,您还必须在代码中包含Jquery UI和Jquery。

希望这有帮助。