为什么jQuery html在与表单一起使用时像replaceWith一样工作
Why jQuery html works like replaceWith when using with form?
>我有 id push-message-form
的表单,ajax 调用服务器返回要替换的新表单 html。 push-message-form
表单本身上设置的 id,例如:
<form id='push-message-form'>form content</form>
和 Ajax Response HTML 看起来是一样的。
从jQuery文档中我了解到:html()将替换元素的内容,而replaceWith()将替换实际元素。
http://api.jquery.com/html/
http://api.jquery.com/replaceWith/
但我正在使用
$('#push-message-form').html('<form id='push-message-form'>content</form>')
它替换表单本身(同时它应该在当前表单中添加另一个表单)。
问题是为什么 html() 在这种情况下作为 replaceWith() 工作?
更新
一些答案建议使用附加,如果不清楚,对不起。但我不想附加。我想用从服务器返回的新表单替换表单(保留其 id),并且 replaceWith() 确实可以正常工作。
问题是为什么html()在这里也有效。因为它应该只替换内容,但它也替换标签。
您应该
使用 .append()
将内容添加到调用容器.html()
该容器中的内容,该容器将用您输入的值替换该容器中的任何内容:
此外,您还尝试使用相同的id
附加表单,因此您应该使用类或更改 id 名称
这:
$('#push-message-form').append('<form class="push-message-form">content</form>')
取而代之的是:
$('#push-message-form').html('<form id='push-message-form'>content</form>')
.html()
直接清除元素内的 HTML,然后将新 HTML 放入其中。虽然您需要.append()
才能实际使当前HTML中添加新的HTML
$('#push-message-form').append('<form id='new-form-id'>content</form>')
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- replaceWith&fadeIn/fadeOut-悬停后无法工作
- 为什么jQuery html在与表单一起使用时像replaceWith一样工作
- jQuery replaceWith无法在Firefox 42中工作
- jquery replaceWith之后脚本停止工作
- . replacewith()在jQuery 1.9+中不能工作
- 为什么我的JQuery replaceWith()不能工作?