遍历右侧jquery选择器的dom元素

traversing dom elements for right jquery selector

本文关键字:dom 元素 选择器 jquery 遍历      更新时间:2023-09-26

给定下面的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的元素中获得类form-group的所有项目,然后获得类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);

你的CSS语法错误。试试这个:

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

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