将load()输出附加到jQuery中的同一div



按钮调用JS函数,该函数使用jQuery加载异步加载不同的PHP页面,并将结果放入errorReturndiv中。

<div id='errorReturn'></div>
<button onclick='trySomething()'>Click me</button>
<script>
function trySomething() {
var url = 'otherpage.php'
$('#errorReturn').load(url)
}
</script>

一切都很好
因为我想让用户看到ALL如果多次单击按钮会出现错误,所以我想将结果附加到同一个分区。
我尝试了两个

$('#errorReturn').append.load(url)
$('#errorReturn').append(load(url))

它们没有起作用。然后我找到了解决方案:

$('#errorReturn').append($('#errorReturn').load(url))

它有效。有点像:(它填充了errorReturndiv,但没有附加到它。它只是覆盖它,就像我只是写了一样

$('#errorReturn').load(url)

我可能应该休息一下,但我看不出哪里出了问题:(

编辑:由于有人将此标记为";在另一个问题中回答";,另一个问题是在我明确要求jQuery时使用JS,加上另一个答案在添加可能的XSS注入的HTML时引起了很多骚动,我认为这里接受的答案更容易理解

load()总是覆盖目标元素的内容。要做您需要的事情,您可以发出AJAX请求并手动附加内容。试试这个:

<div id="errorReturn"></div>
<button id="add-content">Click me</button>
jQuery($ => {
$('#add-content').on('click', e => {
$.ajax({
url: 'otherpage.php',
success: html => $('#errorReturn').append(html)
});
});
});

将新的<div>.load()内容放入其中,并将其放入.append()中。

$("#errorReturn").append($("<div/>").load(url));

当然,您也可以在<div>中添加样式等,例如,使用上边距来分隔各个错误。

最新更新