javascript - 尝试刷新下拉菜单

标签 javascript jquery ajax

我有一个带有下拉列表的按钮,我正在尝试使用 jquery 刷新该按钮(在提交中),以便更新其下拉列表以显示新项目。

<button type="button" tabindex="-1" class="fr-command fr-btn fr-dropdown" data-cmd="itemAttributeKey">
<i class="fa fa-text-height"></i>
</button>
<div class="fr-dropdown-menu" style="left: 597px; top: 37px;">
</div>

该按钮用于所见即所得插件(它将文本添加到编辑器中)。我刚刚从 chrome 检查编码编辑器中获得了上面的编码,这就是我能找到的按钮的全部内容。

此代码在提交表单时运行。

$(".fr-dropdown").load(location.href + " .fr-dropdown");

问题是它只是破坏了下拉列表,而不是重新加载它来添加更新的项目。

我有 $("#key-name-list").load(location.href + "#key-name-list"); 转到 key-name- list div,它会很好地更新该 div 中的 li 项目,但我无法刷新所见即所得编辑器按钮下拉列表以显示新项目。

我对 jquery 或 js 不太了解,所以这就是我所拥有的所有信息。我可能错过了一些东西。提交表单时运行的代码有什么问题吗?为什么它会破坏下拉列表而不是完全刷新它。

更新

这是对 @Guffa 答案的编辑。你说的很有道理,我是在复制很久以前的代码,不记得它是如何工作的,它只是有与我需要的类似的功能,所以我使用了它。

使用您的编码,我得到的结果与表单提交之前的结果类似

enter image description here

以及之后。

enter image description here

请注意它如何破坏按钮使其不再显示。

(将其作为更新,因为我想添加图像)

最佳答案

load method不会替换元素,而是将内容放置在元素内,因此这两个代码实际上都是不正确的。对于列表,它不会失败,因为它在 div 内添加了另一个 div

您应该仅从加载的数据中获取内容,而不是元素本身:

$("#key-name-list").load(location.href + " #key-name-list li");

和:

$(".fr-dropdown").load(location.href + " .fr-dropdown option");

关于javascript - 尝试刷新下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36515249/

相关文章:

javascript - NodeJS - 从多级对象数组中提取数据

javascript - React-router 在导航栏中添加链接

javascript - React 将 DOM 引用暴露给父组件

java - 从服务器请求 JSON 时客户端卡住

javascript - 捕捉使用 javascript(或 jquery)点击的超链接?

javascript - 带有导航按钮的基本图像 slider 插件

javascript - 无法通过单击特定按钮删除元素

javascript - Meteor 函数执行两次

jquery - 在 jQuery 中使用 prependTo() 时出现问题

asp.net - JQuery 和 Ajax - 即将掌握