博客列表 >jQuery常用DOM操作及ajax和jsonp跨域请求

jQuery常用DOM操作及ajax和jsonp跨域请求

陈强
陈强原创
2021年01月14日 13:39:07529浏览

dom()

  • 添加元素

    子元素像父元素添加用appendTo;父元素向子元素添加用append

  1. //向父元素添加
  2. $("<h1>这里是jquery插入的元素</h1>").appendTo("body");
  3. //向子元素添加
  4. $("body").append("<h2>这里是向子元素添加的内容</h2>");
  • children():方法只获取子元素
  1. <ul id="first">
  2. <li>item1</li>
  3. <li>item2</li>
  4. <li>
  5. <ul>
  6. <li>1</li>
  7. <li class="red">2</li>
  8. <li>3</li>
  9. </ul>
  10. </li>
  11. <li>item4</li>
  12. <li>item5</li>
  13. </ul>
  14. // children()无法获取孙元素
  15. console.log($("ul").filter("#first").children(".red"));
  • find():方法可以获取任何层级的元素
  1. // find()可以获取任何层级的元素
  2. console.log($("ul").filter("#first").find(".red"));
  3. //获取到.red元素后添加背景色为yellow
  4. console.log($("ul").filter("#first").find(".red").css("background", "yellow"));

事件 用户注册小案例

  1. //html代码
  2. <div class="conn">
  3. <h2>用户登录</h2>
  4. <form action="login.php" method="POST" class="login">
  5. <input type="text" name="username" id="username" placeholder="请输入用户名" />
  6. <input type="password" name="password" id="password" placeholder="密码不能为空" />
  7. <button>登录</button>
  8. </form>
  9. </div>
  10. //jquery代码
  11. <script>
  12. //去除表单默认的提交行为
  13. $("form").submit((ev) => ev.preventDefault());
  14. // 非空验证
  15. const user = $("#username");
  16. user.blur(function () {
  17. let tips = "";
  18. const users = ["admin", "manage", "root"];
  19. if ($(user).val().length === 0) {
  20. tips = "用户名不能为空";
  21. $(user).focus();
  22. } else if (users.indexOf($(user).val()) === -1) {
  23. tips = "用户名不存在,请注册" + "<button>注册</button>";
  24. } else {
  25. tips = '<i style="color:green">用户名正确</i>';
  26. }
  27. // 防止提示信息重复
  28. if ($(user).next()[0].tagName !== "DIV") {
  29. $("<div></div>").html(tips).css("color", "red").insertAfter($(user));
  30. }
  31. // 当用户修改文本的输入时,将提示信息清空
  32. // 通过 on 为元素添加事件
  33. user.on("input", function () {
  34. console.log($(user).next("div").remove());
  35. });
  36. });
  37. </script>

jQuery-Ajax

  • $.get(请求url,查询参数,成功回调)
  1. $(".get").click(function (ev) {
  2. $.get("users.php", { id: 2 }, function (data) {
  3. $(ev.target).after("<div></div>").next().html(data);
  4. });
  5. });
  • $.post(请求url,查询参数,成功回调)
  1. $(".post").click(function (ev) {
  2. $.post("users.php", { id: 2 }, function (data) {
  3. $(ev.target).after("<div></div>").next().html(data);
  4. });
  5. });
  • $.ajax()&jsonp
  1. $(".jsonp").click(function (ev) {
  2. $.ajax({
  3. type: "get",
  4. url: "http://world.io/test.php?id=2&jsonp=?",
  5. dataType: "jsonp",
  6. // 告诉跨域访问的服务器需要返回的函数名称
  7. // jsonpCallback: "show",
  8. success: function (data) {
  9. console.log(data);
  10. $("button:last-of-type").after("<div>").next().html(`${data.name} [${data.email}}]`);
  11. },
  12. });
  13. });
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议