Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么;选择";选项是否隐藏?_Jquery_Html_Jquery Selectors - Fatal编程技术网

Jquery 为什么;选择";选项是否隐藏?

Jquery 为什么;选择";选项是否隐藏?,jquery,html,jquery-selectors,Jquery,Html,Jquery Selectors,我有一个HTML选择,如下所示: <select name="something"> <option value="a">1</option> <option value="b">2</option> <option value="c">3</option> </select> 所有选项都将被删除。问题是为什么jquery会删除选项?什么是只删除隐藏标记的最合适的选择器?(井

我有一个HTML选择,如下所示:

<select name="something">
    <option value="a">1</option>
    <option value="b">2</option>
    <option value="c">3</option>
</select>
所有选项都将被删除。问题是为什么jquery会删除选项?什么是只删除隐藏标记的最合适的选择器?(井与否选项标签)


以下是。

在这种情况下,您可以简单地将隐藏元素包装在某种容器中,然后使用jQuery从容器中删除元素:

<div id="foo">
    <p style="display:none;">hello world</p>   
</div>
编辑

以下是另一种方法:

$("#f :hidden").not("option").remove();

您可以只添加应该已经存在的功能:p

$("#f :hidden:not(option)").remove();

查看此jQuery错误报告:

特别值得注意的是:

三个月前由john更改
状态从打开更改为关闭
分辨率设置为wontfix

考虑到除了Firefox以外的所有浏览器 说它是隐藏的,好像是另一种方式。那个 尽管如此,我真的不确定你想用什么来实现目标 :隐藏/:在选项元素上可见。看来你应该这么做 正在使用:改为选中。不要认为这是我们正在做的事情 要花很多时间在自行车上

为了解决这个问题,我将采用@Joseph已经提供的方法:

$("#f :hidden:not(option)").remove();
…按预期工作:

尝试:


$(“:hidden”).not(“选项”)

不确定原因,但可以使用:not jQuery选择器进行补救

$("#f :not(option):hidden").remove();

对我来说似乎很好。。。您使用的浏览器是什么?@lonesomeday:它似乎已损坏,如Firefox以外的任何浏览器所述。选项已在Chrome中删除14@thirtydot你说得对。解决方案1:;-)更严重的是,这听起来像是一个非常糟糕的错误…好问题,问题发生在chrome上,firefox工作。这里的问题是我正在使用Jquery remove解析用户创建的一些HTML页面…:(该选择器不太正确。
:not[option]:hidden
应该是
:not(option):hidden
@thirtydot感谢您的更正!有趣的是,代码段也使用了错误的选择器语法。。
$("#f :hidden:not(option)").remove();
$("#f :hidden:not(option)").remove();
$("#f :not(option):hidden").remove();