我正在根据另一个选择的值清空我的选项:
$('option', '#reasonCode').empty().val('');
我遇到的问题是,如果用户更改答案,则恢复选项。是否有一个简单的解决方案,或者我必须使用 ajax 重建我的选项?
需要明确的是,我正在尝试恢复大约 20 个选项的列表。
这是一个显示行为的小提琴:http: //jsfiddle.net/hX2MY/6/
如您所见,它几乎可以正常工作,但选项都在一条线上。
我正在根据另一个选择的值清空我的选项:
$('option', '#reasonCode').empty().val('');
我遇到的问题是,如果用户更改答案,则恢复选项。是否有一个简单的解决方案,或者我必须使用 ajax 重建我的选项?
需要明确的是,我正在尝试恢复大约 20 个选项的列表。
这是一个显示行为的小提琴:http: //jsfiddle.net/hX2MY/6/
如您所见,它几乎可以正常工作,但选项都在一条线上。
在删除它们之前将它们保存在变量中。
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
您可以尝试使用 .detach() 代替。这会从 DOM 中删除元素,但您可以将它们保存到变量中,如果需要,稍后再重新附加它们。