【问题标题】:Refreshing <DIV> with new results using jQuery使用 jQuery 用新结果刷新 <DIV>
【发布时间】:2015-04-07 16:21:20
【问题描述】:

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

我的第二个滚动菜单位于一个名为“camp”的 DIV 中。我的 jQuery 代码是这样结束的:

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

问题是每次我在第一个滚动菜单中选择某些内容时,都会再次显示另一个第二个菜单。程序追加结果,这是正常的。但结果“匹配”,也就是说额外菜单的结果与第一个菜单中最后一次选择的结果一致。

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

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

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

例如,如果我选择项目“1”,第二个菜单会显示“1”。如果现在我将第一项更改为“2”,我的第二个滚动菜单仍显示“1”。换句话说,它没有被刷新。

这是我的一段 HTML:

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

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

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

...

我第一次选择某些东西时,它会正确显示。但是下一次,显示的值不再改变。虽然,“数据”发生了变化,因为我在成功中对其进行了测试:jQuery 脚本。

我怎么会喜欢这个?

谢谢

【问题讨论】:

  • 除非data 包含带有class="camp" 的元素,否则您的第二个版本已从文档中删除了该类。也许你想要的是.html(data)
  • 要获得真正的答案,您需要显示 data 中的内容以及一些 HTML。
  • 好的,我会展示一个简化版,谢谢
  • 已解决您的解决方案,谢谢!我改用 .html :)

标签: php jquery replace refresh


【解决方案1】:

您应该使用.html(),而不是.replaceWith().html() 用新内容替换 DIV 的内容,.replaceWith() 删除整个 DIV 并将新内容放在它的位置。当您使用.replaceWith() 时,不再有带有class="camp" 的DIV,因此将来的使用将找不到可替换的东西。

【讨论】:

    猜你喜欢
    • 2010-10-05
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 2010-11-26
    • 2012-04-20
    相关资源
    最近更新 更多