使用 jQuery 使用新结果刷新 <DIV>

Refreshing <DIV> with new results using jQuery

我使用 HTML 表单,要求用户在滚动菜单中 select 一些数据。使用 jQuery 和 PhP 我处理这些数据,然后我显示另一个滚动菜单,具体取决于第一个菜单中选择的项目。第二个滚动菜单完全由 php 函数呼应。

我的第二个滚动菜单位于 DIV,名为 "camp"。我的 jQuery 代码这样结束:

 $('.camp').append(data);

问题是每次我 select 第一个滚动菜单中的内容时,另一个第二个菜单再次显示。程序附加结果,这是正常的。但是结果"match",也就是说extra菜单的结果和第一个菜单的最后一个selection是一致的

所以我尝试用新数据替换旧数据,并更改了代码:

$('.camp').replaceWith(data);

现在好了,每次我在第一个菜单中更改某些内容时,都不会出现额外的第二个菜单。但是现在我的问题是第二个滚动菜单中的数据仍然指的是我的第一个 selection.

例如,如果我 select 项目“1”,则第二个菜单显示“1”。如果现在我将我的第一项更改为“2”,我的第二个滚动菜单仍显示“1”。也就是不刷新。

这是我的一段 HTML :

<?php
include 'functions.php';
propose_choix_BDD();
?>
<BR>
<div class="camp"></div>
<BR><BR><BR>

propose_choix_BDD() 显示滚动菜单。简而言之,我想在第一个滚动菜单中用 selected 的结果填充 "camp" div。如果我这样写: ...

$('.camp').replaceWith(data);

...

我第一次 select 东西,它显示正常。但下一次,显示的值不再改变。但是,"data" 发生了变化,正如我在成功测试它时:jQuery 脚本。

我怎么能解决这个问题?

谢谢

您应该使用 .html(),而不是 .replaceWith().html() 用新内容替换 DIV 的内容,.replaceWith() 删除整个 DIV 并将新内容放在原处。当您使用 .replaceWith() 时,不再有 DIV 和 class="camp",因此将来的使用将找不到任何替代品。