遍历右jquery选择器的dom元素

时间:2014-05-18 13:59:44

标签: javascript jquery

鉴于以下html片段,我似乎无法使用class =" input-group"

访问div下的输入元素
 <form action="login.html#register" method="post" id="form-register" class="form-horizontal display-none">
        <div class="form-group">
            <div class="col-xs-6">
                <div class="input-group">
                    <span class="input-group-addon"><i class="gi gi-user"></i></span>
                    <input type="text" id="register-firstname" name="register-firstname" class="form-control input-lg" placeholder="Firstname">
                </div>
           </div>
           <div class="col-xs-6">
               <input type="text" id="register-lastname" name="register-lastname" class="form-control input-lg" placeholder="Lastname">
           </div>
       </div>
       <div class="form-group">
           <div class="col-xs-12">
               <div class="input-group">
                   <span class="input-group-addon"><i class="gi gi-envelope"></i></span>
                   <input type="text" id="register-email" name="register-email" class="form-control input-lg" placeholder="Email">
               </div>
          </div>
     </div>
</form>

我尝试了很多选择器语法,但似乎没有任何工作。我无法弄清楚为什么这个版本不起作用,当然应该这样,但我还不是JQuery的专家。 对我来说,下面的语法是在带有id form-register的元素中获取带有class form-group的所有项,然后获取所有带有class input-group的div,然后获取这些div中的所有输入标记。我错了吗?

 $('#form-register.form-group > div.input-group > input').attr('disabled', true);

正确的语法是通过接受答案的帮助;

 $('#form-register div[class^="col-xs"] input').attr('disabled', true);

1 个答案:

答案 0 :(得分:2)

您的CSS语法不正确。试试这个:

$('#form-register .form-group div.input-group > input').attr('disabled', true);

首先,请注意前两个选择器之间的空格,因为.form-group#form-register的子项。其次,>表示&#39;的直接孩子,因此在div.input-group上使用时不正确。