1

我正在根据另一个选择的值清空我的选项:

$('option', '#reasonCode').empty().val('');

我遇到的问题是,如果用户更改答案,则恢复选项。是否有一个简单的解决方案,或者我必须使用 ajax 重建我的选项?

需要明确的是,我正在尝试恢复大约 20 个选项的列表。

这是一个显示行为的小提琴:http: //jsfiddle.net/hX2MY/6/

如您所见,它几乎可以正常工作,但选项都在一条线上。

4

2 回答 2

3

在删除它们之前将它们保存在变量中。

var allLI = $('option', '#reasonCode').html()

或者

var allLI = $('option', '#reasonCode').contents().clone()

接着

// delete
$('option', '#reasonCode').empty().val('');

//restores
$('option', '#reasonCode').html(allLI);

下面的评论中提到的另一种方法。

var opt = $('select', '#reasonCode').clone(); // save the option
$('select', '#reasonCode').remove(); //remove it
$('#reasonCode').append(opt); // append it back
于 2013-06-06T18:58:47.380 回答
2

您可以尝试使用 .detach() 代替。这会从 DOM 中删除元素,但您可以将它们保存到变量中,如果需要,稍后再重新附加它们。

http://api.jquery.com/detach/

于 2013-06-06T18:59:55.437 回答