jQuery.append()忽略htmlstring中的元素

时间:2013-06-13 16:50:21

标签: jquery

只是好奇是否有人对这种jQuery行为有所了解,这对我来说似乎有些不对劲。

我有一个空的选择表单元素,我想要附加选项,其中一个是通过将其包装在一个显示样式设置为无的span元素中隐藏的。

代码段1 - 附加选项但忽略span元素:

var myOptions = '<option value="1">1</option><span style="display:none;"><option value="2">2</option></span>';
$('#mySelect').append(myOptions);

摘录2 - 按预期工作:

var myOptions = '<option value="1">1</option><option value="2">2</option>';
$('#mySelect').append(myOptions);
$('#mySelect').find('options:eq(1)').wrap('<span style="display:none;"/>');

2 个答案:

答案 0 :(得分:4)

<select>唯一有效的子元素是<option><optgroup>(由Marcell提供)

答案 1 :(得分:0)

请勿附加要隐藏的选项,而是将其存储在选择中。

var myOptions = $.parseHTML('<option value="1">1</option><option value="2">2</option>');
$('#mySelect').append(myOptions.eq(0)).data("hiddenOptions",myOptions.eq(1));

现在,如果您想要将其添加回来,它可以方便地存储在选择的数据对象上。

$("#mySelect").data("hiddenOptions").appendTo("#mySelect")