Java研学-jQuery(二)

九 jQ事件绑定

1 事件绑定

1. 标签中使用on事件属性
<button onclick=clickT()></button>

2. 通过JS给标签设置 on 事件属性
btn.onclick = function(){}

3. 通过JS调用方法的方式
W3C:btn.addEventListner(事件名, 响应函数);
IE:btn.attchEvent(事件名, 响应函数);

4. 页面加载事件处理,可绑定多个处理函数
jQuery对象.click(fn)

2 demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件绑定</title>
</head>
<body>
<button id="btn1">btn1</button>
<button id="btn2" class="myBtn">btn2</button>
<button id="btn3" class="myBtn">btn3</button>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
    //页面加载函数 保证页面加载顺序
    // window.οnlοad=function (){
    //
    // }
    //页面加载函数:文档就绪函数(jq写法)
    // $(function (){
    //     //btn1绑定事件
    //     $("#btn1").click(function (){
    //         console.log("jq绑定第一个按钮")
    //     })
    //     //btn2绑定事件
    //     $(".myBtn").click(function (){
    //         console.log("class样式绑定事件")
    //     })
    // })

    // JS方法btn1绑定事件
    // var btn1 = document.getElementById("btn1");
    // btn1.οnclick=function () {
    //     console.log(this)//this表示js dom对象
    // }

    // JQ方法btn1绑定事件
    $("#btn1").click(function () {
        console.log(this) //js对象 直接用this不能调用JQ对象
        console.log($(this))//jq对象
    })
</script>
</body>
</html>

十 jQ文档操作

1 常用方法

1. 给元素添加子元素,且是最小的子元素。
append()

2. 给元素添加弟弟元素。
after()

3. 用于删除选定元素的所有子节点。这不会删除元素本身,只会删除其内部的内容。
empty()

4. 用于删除选定元素及其所有子节点。这是一个更彻底的方法,它会从DOM中完全移除元素。
remove()

5. detach() 方法与remove()类似,也是用于从DOM中删除元素及其所有子节点。但不同之处在于,detach()会保留所有jQuery数据和事件处理程序,以便将来可以再次将这些元素添加到文档中。
detach()

2 demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>dom操作方法</title>
</head>
<body>
<span style="background-color : blue;color: red;" id="span">SPAN</span>
<div id="div1" style="background-color: gray;">DIV1</div>
<div id="div2" style="background-color: green;">DIV2</div>
<ul id="ul">
    <li>item1</li>
    <li>item2</li>
    <li>item3</li>
    <li>item4</li>
    <li>item5</li>
</ul>
<input id="btn" type="button" value="删除我"/>
<form>
    <fieldset>
        <legend>内部插入节点(插入子节点)</legend>
        <input type="button" value="append" id="append"/>
    </fieldset>
</form>
<form>
    <fieldset>
        <legend>外部插入节点(插入兄弟节点)</legend>
        <input type="button" value="after" id="after"/>
    </fieldset>
</form>

<form>
    <fieldset>
        <legend>删除节点</legend>
        <input type="button" value="删除所有子节点" id="empty"/>
        <input type="button" value="删除节点" id="remove"/>
        <input type="button" value="恢复节点" id="resume"/>
    </fieldset>
</form>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
    //1.删除元素 按钮绑定事件
    $("#btn").click(function () {
        // 当前对象执行remove
        $(this).remove();
    })
    // 2.内部插入节点(插入子节点)
    $("#append").click(function (){
        $(this).after($("#ul")) //将无序列表添加到按钮的后面
    })
    //3.div1添加span
    $("#append").click(function () {
        $("#div1").append($("#span"));
    })
    //4.div2后面添加一个div1
    $("#after").click(function () {
        $("#div2").after($("#div1"));
    })
</script>
</body>
</html>

十一 jQ元素属性操作的方法

1 属性操作的方法

1.用于获取或设置被选元素的样式属性。
css()

2.用于获取或设置表单字段(如 input、select、textarea)的值
val()

3.用于向被选元素添加一个或多个类。
addClass()

4.用于从被选元素移除一个或多个类
removeClass()

5.用于获取或设置被选元素的属性和属性值,特别是那些返回布尔值的属性,如 checked, selected, disabled 等。
prop()

6.用于在指定的元素上存储和获取数据。这允许你附加额外的信息到DOM元素上,而不需要改变其HTML结构。
data()

7.用于获取或设置被选元素的属性值。
attr()

2 demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>元素属性操作</title>
    <style type="text/css">
        .other {
            background-color: orange;
            font-size: 20px;
        }
        .myBtn{
            background-color: red;
        }
    </style>
</head>
<input id="btn" type="button" value="点我"/>
<form>
    <fieldset>
        <legend>属性操作</legend>
        <input type="button" value="获取属性值" id="getAttr"/>
        <input type="button" value="设置属性值" id="setAttr"/>
    </fieldset>
</form>

<form>
    <fieldset>
        <legend>CSS 操作</legend>
        <input type="button" value="添加CSS" id="addClass"/>
        <input type="button" value="删除CSS" id="removeClass"/>
        <input type="button" value="轮换CSS" id="toggleClass"/>
        <input type="button" value="判断CSS" id="hasClass"/>
    </fieldset>
</form>

<input type="checkbox" value="1" checked name="gender" id="gender" data-option='{"name" : "蒋干"}'
       style="color: red; background: aqua" class="myBtn other" ><!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
    //点我  设置样式
    $("#btn").click(function (){
        //添加样式:需要提前写好样式代码
        $(this).addClass("myBtn");
        //移除元素的样式
        // $(this).removeClass("other");
        //判断元素是否有样式
        $(this).hasClass("other");
    })
    //属性操作:一个参数方法表示获取属性值  两个参数方法表示设置属性值
    //获取属性值
    $("#getAttr").click(function (){
        //获取点我的id
        console.log($("#btn").attr("id"))

    })
   //设置属性值
    $("#setAttr").click(function (){
        $("#btn").attr("type","123");
        console.log($("#btn").attr("type"))
    })
    //获取复选框选中属性
    console.log( $("#gender").attr("checked"))//返回字符串checked
    console.log( $("#gender").prop("checked"))//返回true判断用这个
</script>
</body>
</html>

十二 常见demo

1 下拉框回显

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>下拉框回显练习</title>
</head>
<body>
<select id="s1">
    <option value="1">选项1</option>
    <option value="2">选项2</option>
    <option value="3" >选项3</option>
    <option value="4">选项4</option>
    <option value="5">选项5</option>
</select>
<br/>
<input type="button" value="回显第3个选项" onclick="echo();"/><br/>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
   function  echo(){
       //选项3默认选中
      $("option:eq(2)").prop("selected",true);
      //获取下拉框选中的值
       console.log($("#s1").val())
   }
</script>
</body>
</html>

2 下拉框选项移动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>下拉框选项移动练习</title>
</head>
<body>
<table border="1">
    <tr>
        <td>
            <select id="select1" style="width:100px;height:200px" size="10" multiple="multiple">
                <option value="选项1">选项1</option>
                <option value="选项2">选项2</option>
                <option value="选项3">选项3</option>
                <option value="选项4">选项4</option>
                <option value="选项5">选项5</option>
                <option value="选项6">选项6</option>
                <option value="选项7">选项7</option>
                <option value="选项8">选项8</option>
                <option value="选项9">选项9</option>
            </select>
        </td>
        <td align="center">
            <input type="button" onclick="moveSelected('select1','select2')" value="-->"/><br/>
            <input type="button" onclick="moveAll('select1','select2')" value="==>"/><br/>
            <input type="button" onclick="moveSelected('select2','select1')" value="<--"/><br/>
            <input type="button" onclick="moveAll('select2','select1')" value="<=="/>
        </td>
        <td>
            <select id="select2" style="width:100px;height:200px" size="10" multiple="multiple"></select>
        </td>
    </tr>
</table>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
    //移动所有下拉选项
    function  moveAll(select1,select2){
        $("#"+select2).append($("#"+select1+" > option"));
    }
    //移动被选中的下拉选项
    function  moveSelected(select1,select2){
        $("#"+select2).append($("#"+select1+" > option:selected"));
    }
</script>
</body>
</html>

3 下拉框选项去重

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>下拉框选项去重移动练习</title>
</head>
<body>
<table border="1">
    <tr>
        <td>
            <select id="s1" style="width:100px;" size="10" multiple="multiple" >
                <option value="1">选项1</option>
                <option value="2">选项2</option>
                <option value="3">选项3</option>
                <option value="4">选项4</option>
                <option value="5">选项5</option>
            </select>
        </td>
        <td align="center">
            <input type="button" value="去除重复" onclick="distinct();"/><br/>
        </td>
        <td>
            <select id="s2" style="width:100px;" size="10" multiple="multiple" >
                <option value="1">选项1</option>
                <option value="3">选项3</option>
                <option value="5">选项5</option>
            </select>
        </td>
    </tr>
</table>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
  function   distinct(){
      //数组声明:存储选项元素值
      var arr=new Array();
    //获取第二个下拉框选项值并且存到数组中
      //jq数组遍历:each参数  index表示元素下标  item表示数组元素
      $("#s2 > option").each(function (index,item){
          //获取数组元素的值  然后存储到新建的arr中
          arr.push($(item).val())
      })
      //获取第一个下拉框选项
      $("#s1 > option").each(function (index,item){
          //将选项的值和arr中的值做比较
         var res= $.inArray($(item).val(),arr);//查看$(item).val()在arr中的位置有则返回对应的index没有返回-1
          //如果数据是重复的返回值不等于-1
          if(res !=-1){
             //移除当前元素
              $(item).remove();
          }
      })
  }
</script>
</body>
</html>

4 全选

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>全选练习</title>
</head>
<body>
请选择你的爱好:<br/>
<input type="checkbox" onchange="checkChange(this)" id="checkAll"/>全选/全不选<br/>
<div>
    <input type="checkbox" name="hobby"/>JAVA&nbsp;
    <input type="checkbox" name="hobby"/>C&nbsp;
    <input type="checkbox" name="hobby"/>Python&nbsp;
    <input type="checkbox" name="hobby"/>Go&nbsp;
</div>

<div>
    <input type="button" id="btn_checkAll" onclick="checkAll(true)" value="全选"/>
    <input type="button" onclick="checkAll(false)" value="全不选"/>
    <input type="button" onclick="checkUnAll()" value="反选"/>
</div>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
//全选函数
function  checkAll(bol){
   //将爱好的选中属性设置为bol
    $("input[name='hobby']").prop("checked",bol);
}
//全选和全不选切换
function  checkChange(obj){
    $("input[name='hobby']").prop("checked",$(obj).prop("checked"));
}
//反选
function checkUnAll(){
    $("input[name='hobby']").each(function (index,item){
        //将当前复选框状态设置相反的状态
        $(item).prop("checked",!$(item).prop("checked"));
    })
}
</script>
</body>
</html>
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰勒疯狂展开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值