Iva*_*van 12 html jquery jquery-selectors
我有这样的HTML选择:
<select name="something">
<option value="a">1</option>
<option value="b">2</option>
<option value="c">3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我注意到jquery解释了选项是隐藏的HTML标记.当我必须删除像这个例子中的真正隐藏标签时,问题出现了:
<form action="#" id="f">
<select name="something">
<option value="a">1</option>
<option value="b">2</option>
<option value="c">3</option>
</select>
<p style="display:none">hello world</p>
<any_tag style="display:none">some text</any_tag>
</form>
Run Code Online (Sandbox Code Playgroud)
如果我执行这个:
$("#f :hidden").remove();
Run Code Online (Sandbox Code Playgroud)
所有选项都被删除.问题是为什么jquery删除选项?什么是最合适的选择,除去只隐藏标签?(是否有选项标签)
这是一个测试.
Jos*_*kle 11
您可以添加应该已存在的功能:P
$("#f :hidden:not(option)").remove();
Run Code Online (Sandbox Code Playgroud)
看看这个jQuery错误报告:http://bugs.jquery.com/ticket/6293
特别值得注意的是
由john
于3个月前更改状态从打开更改为已关闭
分辨率设置为wontfix考虑到每个浏览器,但Firefox说它是隐藏的 - 似乎它是相反的方式.话虽这么说,我真的不确定你想要实现的目标:隐藏/:在选项元素上可见.看起来你应该使用:改为选择.不要以为这是我们将要花费很多周期的事情.
作为这种情况的修复,我会选择@Joseph已经提供的内容:
$("#f :hidden:not(option)").remove();
Run Code Online (Sandbox Code Playgroud)
..的工作原理如下:http://jsfiddle.net/thirtydot/G4Qnr/4/