如何将选择框的内容存储到变量中?

发布于 2024-09-28 21:35:29 字数 164 浏览 3 评论 0原文

我的 HTML 页面上有一个

如何将选择字段的选项存储到变量中,然后再次将其加载到选择中?在某些情况下,能够恢复选择字段的默认选项会很有帮助。

I have a <select> field on my HTML page that is populated with a few options. With the help of AJAX, I replace those options in the select field with more appropriate options.

How can I store the options of my select field into a variable and then load it into the select again? It would be helpful to be able to get back the default options of the select field in some cases.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

往日情怀 2024-10-05 21:35:29
var $default_opts = $('#mySelect').children();

我在这里使用了 jQuery 的 .children() 来保持它更多一点如果您使用 元素,则为通用。

当需要恢复到原始内容时,您可以执行以下操作:

$('#mySelect').empty().append( $default_opts.clone() );

这会清空

var $default_opts = $('#mySelect').children();

I used jQuery's .children() here to keep it a little more generic in case you're using <optgroup> elements.

When it comes time to revert to the originals, you could do something like this:

$('#mySelect').empty().append( $default_opts.clone() );

This empties the <select> of its current content, and appends a clone of the defaults so that your copy is retained in its original state.

你又不是我 2024-10-05 21:35:29

如果您想恢复对象而不是 html() 字符串,可以使用 detach()

//remove options from select and hold them inside a variable
var defaults=$('select option').detach();

//clear select and restore the defaults
$('select').empty().append(defaults);

如何将其与 replaceWith() 一起使用的示例:

<select id="target" size="3">
 <option>a
 <option>b
</select>
<input type="button" 
   value="replace"
   onclick="fx($('#target'),this)"
   />

<script  type='text/javascript'>
function fx(o,b)
{
 if(b.value==='replace')
 {
  o.data('defaults',$('option',o).replaceWith('<option>1</option><option>2</option>'));
  $(b).val('restore');
 }
 else
 {
  $(o).empty().append($(o).data('defaults'));
  $(b).val('replace');
 }
}
</script>

http://jsfiddle.net/doktormolle/Sgn72/

If you want to restore the objects instead of the html()-string, you can use detach()

//remove options from select and hold them inside a variable
var defaults=$('select option').detach();

//clear select and restore the defaults
$('select').empty().append(defaults);

An example how to use it with replaceWith() :

<select id="target" size="3">
 <option>a
 <option>b
</select>
<input type="button" 
   value="replace"
   onclick="fx($('#target'),this)"
   />

<script  type='text/javascript'>
function fx(o,b)
{
 if(b.value==='replace')
 {
  o.data('defaults',$('option',o).replaceWith('<option>1</option><option>2</option>'));
  $(b).val('restore');
 }
 else
 {
  $(o).empty().append($(o).data('defaults'));
  $(b).val('replace');
 }
}
</script>

http://jsfiddle.net/doktormolle/Sgn72/

舞袖。长 2024-10-05 21:35:29

我的方法是使用 jQuery 的 .data 函数来存储选项 html。

select_box = $("#select-box");
select_box.data("orginal_options", select_box.html());
select_box.html("<option value='1'>New Option</option>");

回复:

select_box.html(select_box.data("original_options"));

当然这些都是基本的想法,我不太清楚你的逻辑是怎样的。 (如果我错了,请纠正我)。

My way would be using the jQuery's .data function to store the options html.

select_box = $("#select-box");
select_box.data("orginal_options", select_box.html());
select_box.html("<option value='1'>New Option</option>");

To resotre:

select_box.html(select_box.data("original_options"));

Of course these are the basic ideas, as I don't really know how's your logic. (And please correct me if I'm wrong).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文