Jquery高级编程(一)【50个高级jQuery代码开发技巧】

jQuery的升级与编程技巧 jQuery的升级可以获得更好的性能和更多的功能,但在升级之前需要进行充分的准备和测试。jQuery的升级是为了获取更好的性能、更多的功能和修复已知的问题。在升级jQuery之前,我们需要了解当前项目所使用的jQuery版本以及目标版本之间的差异。查看更新日志:在jQuery的官方网站上,可以找到每个版本的更新日志。仔细阅读更新日志,了解新版本中引入的功能、修复的问题以及可能会影响现有代码的变化。替换jQuery文件:下载最新版本的jQuery文件,替换项目中的旧版本文件。一、jQuery的升级。 阅读详情

1.创建一个嵌套的过滤器

.filter(":not(:has(.selected))") //去掉所有不包含class为.selected的元素

2.重用你的元素查询

var allItems = $("div.item"); 
var keepList = $("div#container1 div.item");
<div>class names:
$(formToLookAt + " input:checked").each(function() {     keepListkeepList = keepList.filter("." + $(this).attr("name")); });
</div>

3.使用has()来判断一个元素是否包含特定的class或者元素

//jQuery 1.4.* includes support for the has method. This method will find 
//if a an element contains a certain other element class or whatever it is 
//you are looking for and do anything you want to them.
$("input").has(".email").addClass("email_icon");

4.使用jQuery切换样式

//Look for the media-type you wish to switch then set the href to your new style sheet 
$('link[media='screen']').attr('href', 'Alternative.css'); 

5.限制选择的区域

//Where possible, pre-fix your class names with a tag name 
//so that jQuery doesn't have to spend more time searching 
//for the element you're after. Also remember that anything 
//you can do to be more specific about where the element is 
//on your page will cut down on execution/search times 
var in_stock = $('#shopping_cart_items input.is_in_stock');
<ul id="shopping_cart_items"> 
<li> 
<input value="Item-X" name="item" class="is_in_stock" type="radio"> Item X</li> 
<li> 
<input value="Item-Y" name="item" class="3-5_days" type="radio"> Item Y</li> 
<li> 
<input value="Item-Z" name="item" class="unknown" type="radio"> Item Z</li> 
</ul>

6.如何正确使用ToggleClass

//Toggle class allows you to add or remove a class 
//from an element depending on the presence of that 
//class. Where some developers would use: 
a.hasClass('blueButton') ? a.removeClass('blueButton') : a.addClass('blueButton'); 
//toggleClass allows you to easily do this using 
a.toggleClass('blueButton');

7.设置IE指定的功能

if ($.browser.msie) { // Internet Explorer is a sadist. }

8.使用jQuery来替换一个元素

$('#thatdiv').replaceWith('fnuh');

9.验证一个元素是否为空

if ($('#keks').html()) { //Nothing found ;} 

10.在无序的set中查找一个元素的索引

$("ul > li").click(function () { 
    var index = $(this).prevAll().length; 
});

11.绑定一个函数到一个事件

$('#foo').bind('click', function() { 
  alert('User clicked on "foo."'); 
});

12.添加HTML到一个元素

$('#lal').append('sometext');

13.创建元素时使用对象来定义属性

var e = $("", { href: "#", class: "a-class another-class", title: "..." });

14.使用过滤器过滤多属性

//This precision-based approached can be useful when you use 
//lots of similar input elements which have different types 
var elements = $('#someid input[type=sometype][value=somevalue]').get();

15.使用jQuery预加载图片

jQuery.preloadImages = function() { for(var i = 0; i').attr('src', arguments[i]); } }; 
// Usage $.preloadImages('image1.gif', '/path/to/image2.png', 'some/image3.jpg');  

16.设置任何匹配一个选择器的事件处理程序

$('button.someClass').live('click', someFunction);
  //Note that in jQuery 1.4.2, the delegate and undelegate options have been
  //introduced to replace live as they offer better support for context
    //For example, in terms of a table where before you would use..
  // .live()
  $("table").each(function(){
    $("td", this).live("hover", function(){
    $(this).toggleClass("hover");
    });
  });
  //Now use..
  $("table").delegate("td", "hover", function(){
  $(this).toggleClass("hover");
});

17.找到被选择到的选项(option)元素

$('#someElement').find('option:selected');

18.隐藏包含特定值的元素

$("p.value:contains('thetextvalue')").hide();

19.自动的滚动到页面特定区域

jQuery.fn.autoscroll = function(selector) {
  $('html,body').animate(
    {scrollTop: $(selector).offset().top},
    500
  );
}
//Then to scroll to the class/area you wish to get to like this:
$('.area_name').autoscroll();

20.检测各种浏览器

Detect Safari (if( $.browser.safari)),
Detect IE6 and over (if ($.browser.msie &amp;&amp; $.browser.version &gt; 6 )),
Detect IE6 and below (if ($.browser.msie &amp;&amp; $.browser.version &lt;= 6 )),
Detect FireFox 2 and above (if ($.browser.mozilla &amp;&amp; $.browser.version &gt;= '1.8' ))

21.替换字符串中的单词

var el = $('#id');
el.html(el.html().replace(/word/ig, ''));

22.关闭右键的菜单

$(document).bind('contextmenu',function(e){ return false; });

23.定义一个定制的选择器

$.expr[':'].mycustomselector = function(element, index, meta, stack){
// element- is a DOM element
// index - the current loop index in stack
// meta - meta data about your selector
// stack - stack of all elements to loop
// Return true to include current element
// Return false to explude current element
};
// Custom Selector usage:
$('.someClasses:test').doSomething();

24.判断一个元素是否存在

if ($('#someDiv').length) {//hooray!!! it exists...}

25.使用jQuery判断鼠标的左右键点击

$("#someelement").live('click', function(e) {
    if( (!$.browser.msie &amp;&amp; e.button == 0) || ($.browser.msie &amp;&amp; e.button == 1) ) {
        alert("Left Mouse Button Clicked");
    }
    else if(e.button == 2)
        alert("Right Mouse Button Clicked");
});

26.显示或者删除输入框的缺省值

//This snippet will show you how to keep a default value
//in a text input field for when a user hasn't entered in
//a value to replace it
swap_val = [];
$(".swap").each(function(i){
    swap_val[i] = $(this).val();
    $(this).focusin(function(){
        if ($(this).val() == swap_val[i]) {
            $(this).val("");
        }
    }).focusout(function(){
        if ($.trim($(this).val()) == "") {
            $(this).val(swap_val[i]);
        }
    });
});
<INPUT class=swap value="Enter Username here.." type=text>

27.指定时间后自动隐藏或者关闭元素(1.4支持)

//Here's how we used to do it in 1.3.2 using setTimeout
setTimeout(function() {
  $('.mydiv').hide('blind', {}, 500)
}, 5000);
//And here's how you can do it with 1.4 using the delay() feature (this is a lot like sleep)
$(".mydiv").delay(5000).hide('blind', {}, 500);

28.动态创建元素到DOM

var newgbin1Div = $('');
newgbin1Div.attr('id','gbin1.com').appendTo('body');

29.限制textarea的字符数量

jQuery.fn.maxLength = function(max){
  this.each(function(){
    var type = this.tagName.toLowerCase();
    var inputType = this.type? this.type.toLowerCase() : null;
    if(type == "input" &amp;&amp; inputType == "text" || inputType == "password"){
      //Apply the standard maxLength
      this.maxLength = max;
    }
    else if(type == "textarea"){
      this.onkeypress = function(e){
        var ob = e || event;
        var keyCode = ob.keyCode;
        var hasSelection = document.selection? document.selection.createRange().text.length &gt; 0 : this.selectionStart != this.selectionEnd;
        return !(this.value.length &gt;= max &amp;&amp; (keyCode &gt; 50 || keyCode == 32 || keyCode == 0 || keyCode == 13) &amp;&amp; !ob.ctrlKey &amp;&amp; !ob.altKey &amp;&amp; !hasSelection);
      };
      this.onkeyup = function(){
        if(this.value.length &gt; max){
          this.value = this.value.substring(0,max);
        }
      };
    }
  });
};
//Usage:
$('#gbin1textarea').maxLength(500);

30.为函数创建一个基本测试用例

//Separate tests into modules.
module("Module B");
test("some other gbin1.com test", function() {
  //Specify how many assertions are expected to run within a test.
  expect(2);
  //A comparison assertion, equivalent to JUnit's assertEquals.
  equals( true, false, "failing test" );
  equals( true, true, "passing test" );
});

31.使用jQuery克隆元素

var cloned = $('#gbin1div').clone();

32.测试一个元素在jQuery中是否可见

if($(element).is(':visible') == 'true') { //The element is Visible }

33.元素屏幕居中

jQuery.fn.center = function () {
  this.css('position','absolute');
  this.css('top', ( $(window).height() - this.height() ) / +$(window).scrollTop() + 'px');
  this.css('left', ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + 'px');return this;
}
//Use the above function as: $('#gbin1div').center();

34.使用特定名字的元素对应的值生成一个数组

var arrInputValues = new Array();
$("input[name='table[]']").each(function(){
     arrInputValues.push($(this).val());
});

35.剔除元素中的HTML

(function($) {
    $.fn.stripHtml = function() {
        var regexp = /&lt;("[^"]*"|'[^']*'|[^'"&gt;])*&gt;/gi;
        this.each(function() {
            $(this).html(
                $(this).html().replace(regexp,"")
            );
        });
        return $(this);
    }
})(jQuery);
//usage:
$('p').stripHtml();

36.使用closest来得到父元素

$('#searchBox').closest('div');

37.使用firebug来记录jQuery事件

// Allows chainable logging
// Usage: $('#someDiv').hide().log('div hidden').addClass('someClass');
jQuery.log = jQuery.fn.log = function (msg) {
      if (console){
         console.log("%s: %o", msg, this);
      }
      return this;
};

38.点击链接强制弹出新窗口

jQuery('a.popup').live('click', function(){
  newwindow=window.open($(this).attr('href'),'','height=200,width=150');
  if (window.focus) {newwindow.focus()}
  return false;
});

39.点击链接强制打开新标签页

jQuery('a.newTab').live('click', function(){
  newwindow=window.open($(this).href);
  jQuery(this).target = "_blank";
  return false;
});

40.使用siblings()来处理同类元素

// Rather than doing this
$('#nav li').click(function(){
    $('#nav li').removeClass('active');
    $(this).addClass('active');
});
// Do this instead
$('#nav li').click(function(){
    $(this).addClass('active')
        .siblings().removeClass('active');
});

41.选择或者不选页面上全部复选框

var tog = false; // or true if they are checked on load
$('a').click(function() {
    $("input[type=checkbox]").attr("checked",!tog);
    tog = !tog;
});

42.基于输入文字过滤页面元素

//If the value of the element matches that of the entered text
//it will be returned
$('.gbin1Class').filter(function() {
    return $(this).attr('value') == $('input#gbin1Id').val() ;
 })

43.取得鼠标的X和Y坐标

$(document).mousemove(function(e){
$(document).ready(function() {
$().mousemove(function(e){
$('#XY').html("Gbin1 X Axis : " + e.pageX + " | Gbin1 Y Axis " + e.pageY);
});
});

44.使得整个列表元素(LI)可点击

$("ul li").click(function(){
  window.location=$(this).find("a").attr("href"); return false;
});
<UL>
<LI><A href="#">GBin1 Link 1</A></LI>
<LI><A href="#">GBin1 Link 2</A></LI>
<LI><A href="#">GBin1 Link 3</A></LI>
<LI><A href="#">GBin1 Link 4</A></LI>
</UL>

45.使用jQuery来解析XML

function parseXml(xml) {
  //find every Tutorial and print the author
  $(xml).find("Tutorial").each(function()
  {
  $("#output").append($(this).attr("author") + "");
  });
}

46.判断一个图片是否加载完全

$('#theGBin1Image').attr('src', 'image.jpg').load(function() {
alert('This Image Has Been Loaded');
});

47.使用jQuery命名事件

//Events can be namespaced like this
$('input').bind('blur.validation', function(e){
    // ...
});
//The data method also accept namespaces
$('input').data('validation.isValid', true);

48.判断cookie是否激活或者关闭

var dt = new Date();
dt.setSeconds(dt.getSeconds() + 60);
document.cookie = "cookietest=1; expires=" + dt.toGMTString();
var cookiesEnabled = document.cookie.indexOf("cookietest=") != -1;
if(!cookiesEnabled)
{
  //cookies have not been enabled
}

49.强制过期cookie

var date = new Date();
date.setTime(date.getTime() + (x * 60 * 1000));
$.cookie('example', 'foo', { expires: date });

50.使用一个可点击的链接替换页面中所有URL

$.fn.replaceUrl = function() {
        var regexp = /((ftp|http|https)://(w+:{0,1}w*@)?(S+)(:[0-9]+)?(/|/([w#!:.?+=&amp;%@!-/]))?)/gi;
        this.each(function() {
            $(this).html(
                $(this).html().replace(regexp,'<A href="$1">$1</A>')
            );
        });
        return $(this);
    }
//usage
$('#GBin1div').replaceUrl();
告别VBA!用Python+PyWin32自动化你的SolidWorks建模流程(附完整代码) 本文详细介绍了如何利用Python和PyWin32实现SolidWorks建模流程的自动化,替代传统的VBA宏开发。通过环境配置、宏代码转换、高级开发模式及工程化实践等实战内容,帮助机械设计师构建高效、可维护的自动化工作流,显著提升设计效率。 阅读详情

相关推荐

别再迷信Intel网卡了!用普通笔记本+TWINCAT3搭建EtherCAT主站的完整避坑实录

本文详细介绍了如何用普通笔记本和TWINCAT3搭建EtherCAT主站的完整避坑指南。通过破除必须使用Intel网卡的迷思,提供软件环境搭建、关键配置步骤、Wireshark抓包技巧及性能优化建议,帮助开发者低成本实现EtherCAT主站功能。

weixin_29305337的博客 702

jQuery的代码总结

jQuery的代码总结

l10711097061的博客 680

MATLAB下pdf文件操作读取示例

当遇到一些需要大量数据的项目,数据的读取与储存显得尤为重要。怎样把数据从其他格式的文件中读取,并运用到程序中是很多时候我们要解决的问题。对于平常的.txt,和.xlsx文件,MATLAB有对应的函数帮助读取,但是遇到pdf文件时MATLAB很难读取内容。本文以一个操作实例提供了一个从pdf文件中读取数据的方法。

UESTC 五高考3模拟的博客 6557

js--jquery--常用代码(超全图文,持续更新)

目录3. 比较两个日期的大小2.根据指定的一个日期和相差的天数,获取另外一个日期1.计算两个日期天数差的函数 . . . . . 3. 比较两个日期的大小 //注意: 如果两个日期不同月 ,例如 startNum =20200421 endNum =20200501 // var num = endNum -startNum; //结果为80 //因此,该方法只能用来 比较两个时间的大小 var startDate="2020-05-21"; //开始时间 var endDat

VIP_CR的博客 1092

从零到一:YT8512C PHY芯片在STM32F407上的LWIP移植实战与避坑指南

本文详细介绍了YT8512C PHY芯片在STM32F407平台上基于LWIP协议栈的移植实战,涵盖硬件连接、CubeMX配置、寄存器定制和调试技巧。重点解析了与主流PHY芯片的差异,提供了完整的避坑指南和优化建议,帮助开发者快速实现稳定可靠的嵌入式网络连接。

uber9的博客 538

从零开始:用这些公开数据集搞定电力AI项目(含鸟巢、绝缘子、负荷预测等33个实战资源)

本文系统梳理了电力AI领域33个精选公开数据集,涵盖目标检测、负荷预测等关键场景,如鸟巢检测、绝缘子缺陷识别等。通过实战案例解析数据预处理、模型选型及性能优化策略,帮助工程师快速构建端到端解决方案,解决电力AI项目中的数据获取与处理难题。

weixin_42522552的博客 216

最新JQuery 入门 - 附案例代码_jquery前端开发实战教程案例源码,2024年最新阿里三面

/通过给$.fn添加方法就能够扩展jquery对象});});标题1我是弹出来的div1◆◆◆});});});

2401_84185556的博客 1377

基于Xilinx的I2S Receiver IP核和I2S Transmitter IP核音频验证

基于Xilinx的I2S Receiver IP核和I2S Transmitter IP核音频验证 文章目录前言一、工程构架二、Xilinx IP的配置1.I2S Transmitter IP配置:2.I2S Receiver IP配置:3.WM8960的配置:总结 前言 本实验基于Xilinx ZU4EV平台,也适用于ZYNQ平台。音频验证完成,记录调过程。 ①Xilinx 音频IP只支持主模式,左对齐或右对齐方式,16bit或24bit字长。 ②WM8960器件作为从模式;24bit字长;数据传输格

weixin_45637597的博客 6812

JQuery高级

JQuery高级动画遍历 动画 三种方式显示和隐藏元素 默认显示和隐藏方式 show([speed,[easing],[fn]]) hide([speed,[easing],[fn]]) toggle([speed],[easing],[fn]) 参数: speed:动画的速度。三个预定义的值(“slow”,“normal”, “fast”)或表示动画时长的毫秒数值(如:100...

Happy_Boy_z的博客 454

java零基础从入门到精通(全)

目录前言1. 入门知识1.1 java体系1.2 JDK/JRE/JVM区别1.3 编译与运行理解1.4 类体函数细节2. 标识符 前言 java优势 健壮性(JVM(C++语言写的一个虚拟的计算机)、GC(垃圾回收机制)) 多线程并发 可移植性/跨平台 1. 入门知识 1.1 java体系 JavaSE:标准版 JavaEE:企业版 JavaME:微型版 1.2 JDK/JRE/JVM区别 JVM是不能独立安装的。 JRE和JDK都是可以独立安装的 层层嵌套,jvm包括jdk,jdk包括jre

码农研究僧的博客 6万+

YOLO26改进 - C2PSA | C2PSA融合DiffAttention差分注意力:轻量级差分计算实现高效特征降噪,提升模型抗干扰能力

本文介绍了 DiffCLIP,一种将差分注意力机制集成到 CLIP 架构的视觉 - 语言模型,并将其应用于 YOLO26。差分注意力机制通过计算两个互补注意力分布的差值,抵消无关信息干扰。单头差分注意力将 Q 和 K 拆分,分别计算注意力分布后做差值融合;多头差分注意力则每个头独立执行差分操作后聚合输出。关键参数 λ 可动态调控噪声抵消强度。我们将 DiffAttention 代码集成到 YOLO26 中,替换原有模块。实验表明,改进后的 YOLO26 在图像 - 文本理解任务中表现出色。

魔改工程师的博客 601

jquery的一些代码

用于记录。 jquery.cookie.js,jquery.placeholder.min.js,jquery

weixin_44738844的博客 242

WOFOST作物模型(7):6.0.6版本的PCSE使用(多层水分平衡和SNOMIN碳氮模型的集成)

wofost81文件结构如上,其中所需的参数可从github上获取然后input下有两个需要调用的功能函数py文件,需要拖到自己的运行py文件同级目录下在使用土壤模块SNOMIN进行作物生长模型模拟时,需要为土壤剖面的不同层次提供多种输入变量。这些变量通常不随年份变化,因此会统一在土壤文件中定义。本节将说明如何将这些输入变量整合到一个字典中,进而生成SNOMIN能够读取的土壤文件。

所有专家都曾始于新手 637

jQuery 编程的 100 个实用技巧:原理解析与代码示例

本文详细介绍了 100 个 jQuery 编程技巧,涵盖了选择器、DOM 操作、事件处理、动画、Ajax、表单操作等多个方面。通过掌握这些技巧,开发者可以更高效地使用 jQuery 构建动态、交互性强的网页应用。尽管现代前端开发中,原生 JavaScript 和框架逐渐成为主流,但 jQuery 仍然是许多项目中的重要工具。

百锦再的博客 9004

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

分享50个使你成为高级javascript开发者的jQuery的代码开发技巧

翻译:Terry li - GBin1.com 英文: 50 jQuery Snippets That Will Help You Become A Better JavaScript Developer 1. 创建一个嵌套

GBin1.com 434

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

50 个高级 jQuery 代码开发技巧

有需要的,我还发了个资源,可以自己去下载,一起学习~~~ 点击打开链接 http://download.youkuaiyun.com/detail/qq_33220449/9617888 1. 创建一个嵌套的过滤器 .filter(":not(:has(.selected))") //去掉所有不包含class为.selected的元素 2. 重用你的元素查询 var allItems = $

秘密基地 4636

jquery高级编程学习

jquery高级编程 第1章、jQuery入门 类型检查 对象 类型检查表达式 String typeof object === "string" Number typeof object === "number" Boolean typeof object === "boolean" Object typeof...

weixin_30367543的博客 323

jQuery代码开发技巧收集,jquery常用的开发代码

jQuery代码开发技巧收集,jquery常用的开发代码 今天分享一个jquery常用的开发代码,大部分是网友总结的,总共60条。后期我也会陆续完善! 把我在开发中常用的写在这里,希望持续关注~~ 1. 使用siblings()来处理同类元素 // Rather than doing this $('#nav li').click(function(){ $('#nav li').removeClass('active'); $(this).addClass('active'); }

txun123的博客 973

jQuery基础——高级技巧

JQ基础——高级技巧。

m0_54066656的博客 1318

经典收藏 50个jQuery Mobile开发技巧集萃

1、Backbone移动实例 这是在Safari中运行的一款Backbone移动应用程序。想开始体验移动开发,一个好的出发点就是关注这个应用程序的构建方式。先不妨在你的浏览器中查看该应用程序。 相关链接:http://bennolan.com/2010/11/24/backbone-jquery-demo.html 2、使用媒体查询来锁定设备 你可能会问如何

天津SEO,天津网站优化,WEB前端开发,SEOerX 1277

《前端》50个JQuery代码技巧模板

1. 创建一个嵌套的过滤器 .filter(":not(:has(.selected))") //去掉所有不包含class为.selected的元素 2. 重用你的元素查询 var allItems = $("div.item"); var keepList = $("div#container1 div.item"); <div>class names: $(fo...

BelleDiao的博客 553

50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段

本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助。其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助你又快又好地把事情完成。如果你发现你任何可以做得更好的地方的话,欢迎把你的版本粘贴在评论中! 如何修改jQuery默认编码(例如默认UTF-8改成改GB2312): $.ajaxSetup({

李慕白 2383

jQuery代码开发技巧收集

版权声明:本文为优快云博主「晴天暖宝宝」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。比较全面概述了jquery常用的代码

rainbow1122的专栏 448
上一篇: Python操作Excel新版本xlsx文件
下一篇: Jquery高级编程(二)【性能优化篇】
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值