Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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:在选择框中快速选择整个optgroup的简单方法_Jquery_Html_Optgroup - Fatal编程技术网

jQuery:在选择框中快速选择整个optgroup的简单方法

jQuery:在选择框中快速选择整个optgroup的简单方法,jquery,html,optgroup,Jquery,Html,Optgroup,我使用的jQuery函数与此线程中的函数类似: 但是,当我现在单击一个时,它会选择整个optgroup,因为optgroup包含option元素。 我使用以下代码段: $("optgroup").click(function(e) { $(this).children().attr('selected','selected'); }); 我的HTML如下所示: <optgroup label="Abc"> <option value="8" >Ab&l

我使用的jQuery函数与此线程中的函数类似:

但是,当我现在单击一个
时,它会选择整个optgroup,因为optgroup包含option元素。 我使用以下代码段:

  $("optgroup").click(function(e) {
    $(this).children().attr('selected','selected');
  });
我的HTML如下所示:

<optgroup label="Abc">
<option value="8" >Ab</option> 
<option value="7" >C</option></optgroup>

Ab
C

因此,单击
C
上的IG也会选择
Ab
。也许我遗漏了一些明显的东西…

我可能错了,但您可能需要向
添加一个处理程序,以阻止单击事件冒泡

像这样简单的事情可能会有所帮助:


此外,您还可以在optgroup click处理程序中检查目标,如果事件的目标实际上是一个选项标记,则缩短循环,如下所示:

$("optgroup").click(function(e) {
   if ($(e.target).is('option')) return;
   $(this).children().attr('selected','selected');
});

您正在哪个浏览器中签入此内容?一些浏览器不会触发
单击事件(即初学者),因此您可能希望在此处重新访问您的整个方法。嗨,Nick,谢谢您的提问。我现在正在用Chrome/Safari/Firefox进行测试。如果IE不触发点击,那也没那么糟糕,这只是一个方便的选择。但是,如果用户不能选择单个选项,则会很不方便。啊,好吧,在这种情况下听起来不错,只是要确保您知道……我已经看到单击
这里的结果是“胜利,它起作用了!”…啊,废话(IE)太多次了:);-)呵呵,我解决了!
$("optgroup").click(function(e) {
   if ($(e.target).is('option')) return;
   $(this).children().attr('selected','selected');
});