我使用AJAX将数据追加到<div>元素,其中我从JavaScript填充<div>。我怎么能追加新的数据<div>而不丢失以前的数据在其中找到?


当前回答

为什么不直接使用setAttribute ?

thisDiv.setAttribute('attrName','data you wish to append');

然后你可以通过以下方法获得这些数据:

thisDiv.attrName;

其他回答

即使这样也可以:

var div = document.getElementById('divID');

div.innerHTML += 'Text to append';

如果你正在使用jQuery,你可以使用$('#mydiv')。Append ('html content'),它将保留现有的内容。

http://api.jquery.com/append/

小心innerHTML,当你使用它的时候,你会失去一些东西:

theDiv.innerHTML += 'content';

等价于:

theDiv.innerHTML = theDiv.innerHTML + 'content';

这将破坏你的div内的所有节点,并重新创建新的。对其中元素的所有引用和监听器都将丢失。

如果你需要保留它们(例如,当你附加了一个点击处理程序时),你必须用DOM函数(appendChild,insertAfter,insertBefore)附加新内容:

var newNode = document.createElement('div');
newNode.innerHTML = data;
theDiv.appendChild(newNode);

使用列表末尾:

var theDiv = document.getElementById("<ID_OF_THE_DIV>");
var content = document.createTextNode("<YOUR_CONTENT>");
theDiv.appendChild(content);

使用innerHTML: 这种方法将删除@BiAiB提到的现有元素的所有侦听器。因此,如果您计划使用这个版本,请谨慎使用。

var theDiv = document.getElementById("<ID_OF_THE_DIV>");
theDiv.innerHTML += "<YOUR_CONTENT>"; 

你可以使用jQuery。这就很简单了。

下载jQuery文件,将jQuery添加到你的HTML中 或者你可以使用在线链接:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

试试这个:

 $("#divID").append(data);