JQuery 教程

jQuery 选择器:表单选择器

本章将介绍 jQuery 选择器中的表单选择器。

表单选择器

jQuery 的表单选择器是专门简化表单元素选取的伪类选择器,无需写冗长的标签 / 属性选择器,就能快速定位各类表单控件,下面逐个拆解:

选择器作用等价原生选择器

:input

选择所有表单元素(input/textarea/select/button)

$("input, textarea, select, button")

:text

选择所有单行文本框(type="text" 的 input)

$("input[type='text']")

:password

选择所有密码框(type="password" 的 input)

$("input[type='password']")

:radio

选择所有单选按钮(type="radio" 的 input)

$("input[type='radio']")

:checkbox

选择所有复选框(type="checkbox" 的 input)

$("input[type='checkbox']")

:submit

选择所有提交按钮(type="submit" 的 input/button)

$("input[type='submit'], button[type='submit']")

:image

选择所有图片提交按钮(type="image" 的 input)

$("input[type='image']")

:reset

选择所有重置按钮(type="reset" 的 input/button)

$("input[type='reset'], button[type='reset']")

:button

选择所有按钮(type="button" 的 input/button,不含 submit/reset)

$("input[type='button'], button:not([type='submit']):not([type='reset'])")

:file

选择所有文件上传框(type="file" 的 input)

$("input[type='file']")

演示示例

下面通过一个示例演示各个选择器的含义,通过为选中的元素添加样式,直观查看个基本选择器的效果。

示例:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JQeury 教程:选择器</title>
    <!-- 引入 jQuery 库 -->
    <script type="text/javascript" src="https://www.hxstrive.com/cdn/libs/jquery/3.7.1/jquery.min.js"></script>
    <!-- 引入 loglevel 库,方便在 DOM 中打印日志 -->
    <script src="https://www.hxstrive.com/preview_code/libs/custom_loglevel.js"></script>
    <style>
        div { margin:20px; }
        button { background: #EEE !important; border: 1px solid #ccc !important; 
            min-width: 40px; padding: 5px; margin: 5px; cursor: pointer; }
        sup {color: red; font-size: 12px; background: transparent !important;}
        ul li { margin: 3px 0;}
        h3 { font-size: 18px; }
        .app { border:solid 1px #ccc; padding: 5px; }
        form { display: flex; flex-direction: column; gap: 5px; align-items: flex-start; }
        form p { margin: 4px; display: flex; align-items: flex-start; flex-wrap: wrap; }
        form p label { display: inline-block; width: 120px; }
        form p.ops { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }

        /* 效果样式 */
        .myClass {
            box-shadow: inset 0 0 5px red;
        }
    </style>
</head>
<body>

    <div class="app">
        <h3>表单选择器</h3>
        <form>
            <p>
                <input type="hidden" value="10240" />
            </p>
            <p>
                <label>账号:</label>
                <input type="text" placeholder="请输入账号" />
            </p>
            <p>
                <label>密码:</label>
                <input type="password" placeholder="请输入密码" />
            </p>
            <p>
                <label>选择学历:</label>
                <select title="学历">
                    <option value="val1">小学</option>
                    <option value="val2">中学</option>
                    <option value="val3">大学</option>
                </select>
            </p>
            <p>
                <label>选择爱好:</label>
                <input type="checkbox" placeholder="游泳" />游泳
                <input type="checkbox" placeholder="健身" />健身
                <input type="checkbox" placeholder="看书" />看书
            </p>
            <p>
                <label>婚姻情况:</label>
                <input type="radio" name="hunyin" value="0" placeholder="未婚" />未婚
                <input type="radio" name="hunyin" value="1" placeholder="已婚" />已婚
            </p>
            <p>
                <label>上传个人简历:</label>
                <input type="file" placeholder="选择一个文件" />
            </p>
            <p>
                <label>自我简介:</label>
                <textarea placeholder="简单介绍自己吧..."></textarea>
            </p>
            <p class="ops">
                <input type="button" value="Input Button"/>
                <input type="reset" value="Input Reset" />
                <input type="submit" value="Input Submit" />
                <input type="image" src="https://www.hxstrive.com/cdn/resources/img_submit.png" alt="提交" />
            </p>
            <p class="ops">
                <button type="button">Button</button>
                <button type="reset">Button Reset</button>
                <button type="submit">Button Submit</button>
            </p>
        </form>
    </div>

    <div>
        <!-- :input 匹配所有 input, textarea, select 和 button 元素 -->
        <button type="button" onclick="
                reset();
                $(':input').addClass('myClass');
            ">:input</button>
        
        <!-- :text 匹配所有的单行文本框 -->
        <button type="button" onclick="
                reset();
                $(':text').addClass('myClass');
            ">:text</button>
        
        <!-- :password 匹配所有密码框 -->
        <button type="button" onclick="
                reset();
                $(':password').addClass('myClass');
            ">:password</button>

        <!-- :radio 匹配所有单选按钮 -->
        <button type="button" onclick="
                reset();
                $(':radio').addClass('myClass');
            ">:radio</button>
        
        <!-- :checkbox 匹配所有复选框  -->
        <button type="button" onclick="
                reset();
                $(':checkbox').addClass('myClass');
            ">:checkbox</button>

        <!-- :submit 匹配所有提交按钮 -->
        <button type="button" onclick="
                reset();
                $(':submit').addClass('myClass');
            ">:submit</button>

        <!-- :image 匹配所有图像域 -->
        <button type="button" onclick="
                reset();
                $(':image').addClass('myClass');
            ">:image</button>

        <!-- :reset 匹配所有重置按钮 -->
        <button type="button" onclick="
                reset();
                $(':reset').addClass('myClass');
            ">:reset</button>

        <!-- :button 匹配所有按钮 -->
        <button type="button" onclick="
                reset();
                $(':button').addClass('myClass');
            ">:button</button>

        <!-- :file 匹配所有文件域 -->
        <button type="button" onclick="
                reset();
                $(':file').addClass('myClass');
            ">:file</button>
    </div>

    <script>
        function reset() {
            $('*').removeClass('myClass');
        }
    </script>
    
</body>
</html>

看看效果👉自己动手试一试 »

更多关于 jQuery 的知识请阅读后续教程。

  

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号