解决方案 »

  1.   

    如果不用空格,那只有几种情况,
    1. 不要空格那么:
    $("#multiple:selected")
    那么jq是不认识这个选择器的,匹配不到东西。。
    2. 用逗号,
    $("#multiple, :selected")
    这是一种多选的情况,是并列关系,表示id为#multiple,下拉框 :selected 选中的情况都匹配。
     
    空格代表的是一种从属关系,其完整的应该是:
    $("#multiple option") // 表示匹配只有#multiple下面的option,如果前面没有id,表示匹配所有的option。
    $("#multiple option:selected") // 表示匹配只有#multiple下面选中的option,如果前面没有id,表示匹配所有选中的option。
    jquery对象本身是一个类数组,取他的值直接可以这样,没有特别的判断处理,可以省略each。alert($("#multiple option:selected").val());
      

  2.   

    css选择器 你可以看下css选择器规则
    指的是id="multiple"下的被选中的元素
      

  3.   

    您的意思是说  option是#multiple 的子类元素,:selected是#multiple的后代元素,在找某个元素(#multiple)的后代元素(:selected元素)时,两个过滤选择条件之间必须用空格隔开是吗?
      

  4.   

    本帖最后由 net_lover 于 2014-08-09 13:44:43 编辑
      

  5.   

      $("#multiple :selected").each(function(){
        alert(this.value);
      });  $("option:selected").each(function(){
        alert(this.value);
      });
    观察这两个的执行结果就可以知道了
    selected 属性是隶属于 option 的,所以写作 option:selected
    而 #multiple :selected 只不过是省略了 option
    完整的应写作 #multiple option:selected
      

  6.   


    在这段代码中#multiple的直接子类是什么?第一项的那个option的直接子类是什么?谢谢