一个按钮调用一个JS函数,该函数使用jQuery加载异步加载一个不同的errorReturn
页面,并将结果放到一个errorReturn
div中。
<div id='errorReturn'></div>
<button onclick='trySomething()'>Click me</button>
<script>
function trySomething() {
var url = 'otherpage.php'
$('#errorReturn').load(url)
}
</script>
一切都很好。
由于我希望用户看到所有的错误,如果该按钮被多次单击,我希望将结果附加到相同的div中。
我都试过了
$('#errorReturn').append.load(url)
$('#errorReturn').append(load(url))
但他们没有工作。然后我找到了解决办法:
$('#errorReturn').append($('#errorReturn').load(url))
它起作用了。有点像:(它填充了errorReturn
div,但它没有附加到其中。它只是简单地覆盖它,就好像我只是简单地写了
$('#errorReturn').load(url)
我也许该休息一下,但我看不出是怎么回事
编辑:由于有人将此标记为“在另一个问题中回答”,另一个问题是在我明确请求jQuery时使用JS,另外另一个答案在添加可能的XSS注入时引起了很大的麻烦,我认为这里被接受的答案更好,更容易理解。
发布于 2020-09-08 14:18:41
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)
});
});
});
发布于 2020-09-08 14:17:31
创建一个新的<div>
,.load()
内容,并对其进行.append()
。
$("#errorReturn").append($("<div/>").load(url));
当然,您也可以在<div>
中添加样式等,例如,将单个错误分隔开的顶部空白。
https://stackoverflow.com/questions/63795825
复制相似问题