`
Hooopo
  • 浏览: 335235 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JQuery笔记

阅读更多
天才第一步: 
1. 下载jQuery.js并保存在网页可以存取的位置。下载链接:http://docs.jquery.com/Downloading_jQuery
2. 在HTML的head里引用jQuery.js
3. 运用jQuery的方法

 {:a => 1, :b => 3}
 merged_obj = obj.merge(:c => 4, :a => 5) #=> {:a=>5, :b=>3, :c=>4}


js merge Object:
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);
分享到:
评论
48 楼 Hooopo 2011-05-12  
stopPropagation() 方法

不再派发事件。
终止事件在传播过程的捕获、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。
47 楼 Hooopo 2011-05-10  
$.fn.extend({

        //获取和设置光标位置

        position:function( value ){
                var elem = this[0];
                if (elem&&(elem.tagName=="TEXTAREA"||elem.type.toLowerCase()=="text")) {
                        if($.browser.msie){
                                var rng;
                                if(elem.tagName == "TEXTAREA"){
                                        rng = elem.createTextRange();
                                }else{
                                        rng = document.selection.createRange();
                                }
                                if( value === undefined ){
                                        rng.moveStart("character",-elem.value.length);
                                        return  rng.text.length;
                                }else if(typeof value === "number" ){
                                        var index=this.position();
                                        rng.moveStart("character",value)
                                        rng.moveEnd("character",value-index+1)
                                        rng.select();
                                }
                        }else{
                                if( value === undefined ){
                                        return elem.selectionStart;
                                }else if(typeof value === "number" ){
                                        elem.selectionEnd = value;
                                        elem.selectionStart = value;
                                }
                        }
                }else{
                        if( value === undefined )
                                return undefined;
                }
        },

        //选择区域

        selectRange:function(start, end){
                return this.each(function(){
                        if (this.setSelectionRange) {
                                this.focus();
                                this.setSelectionRange(start, end);
                        }
                        else
                        if (this.createTextRange) {
                                var range = this.createTextRange();
                                range.collapse(true);
                                range.moveEnd('character', end);
                                range.moveStart('character', start);
                                range.select();
                        }
                })
        },

        //初始化对象以支持光标处插入内容

        setCaret: function(){
                if(!$.browser.msie) return;
                var initSetCaret = function(){
                        var textObj = $(this).get(0);
                        textObj.caretPos = document.selection.createRange().duplicate();
                };
                $(this)
                .click(initSetCaret)
                .select(initSetCaret)
                .keyup(initSetCaret);
        },

        //在当前对象光标处插入指定的内容

        insertAtCaret: function(textFeildValue){
                var textObj = $(this).get(0);
                if(document.all && textObj.createTextRange && textObj.caretPos){
                        var caretPos=textObj.caretPos;
                        caretPos.text = caretPos.text.charAt(caretPos.text.length-1) == '' ?
                        textFeildValue+'' : textFeildValue;
                }
                else if(textObj.setSelectionRange){
                        var rangeStart=textObj.selectionStart;
                        var rangeEnd=textObj.selectionEnd;
                        var tempStr1=textObj.value.substring(0,rangeStart);
                        var tempStr2=textObj.value.substring(rangeEnd);
                        textObj.value=tempStr1+textFeildValue+tempStr2;
                        textObj.focus();
                        var len=textFeildValue.length;
                        textObj.setSelectionRange(rangeStart+len,rangeStart+len);
                        textObj.blur();
                }
                else {
                        textObj.value+=textFeildValue;
                }
        }
})
46 楼 全冠清 2009-10-30  
全冠清 写道
Hooopo 写道
其实我也隐隐约约闻到一些bad small...

在找动态添加select option的方法
我写的,觉得有点搓,不知道有没有其他好的方式
$(document).ready(function (){
  $('#country').change(function (){
    var options = ""
    $.getJSON(
      "destination/api_load_cities",
      {
        country: this.value
      },
      function(json){  
        var size = json.length;
        for(var i = 0; i < size; i++){
          options += "<option value=" + json[i].destination.id + ">" + json[i].destination.name + "</option>"
        }
        $('#city').empty()
        $('#city').append(options)
      }
      )
  });
});


  var json=[{'text':"00000",'value':"00000"},{'text':"6666",'value':"6666"}]
$(json).each(function(i){
				$('#test').append($(new Option).text(this.text).val(this.value))
			})


var json=[{'text':"00000",'value':"00000"},{'text':"6666",'value':"6666"}]
for(i in json){
				$('#test').append($(new Option).text(json[i]['text']).val(json[i]['value']))
			}
45 楼 Hooopo 2009-10-21  
重于暂时摆脱js了。。。
44 楼 Hooopo 2009-10-20  
貌似我的冒泡没用对。。。。惭愧
43 楼 Hooopo 2009-10-19  
全冠清 写道
引用

我这样append的option,我如何去监视他的evet呢?貌似没有触发onchange

change是可以监听到的,因为后改变是是option,而change是绑定在select上的,见
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>Untitled Document</title>
	</head>
	<script type="text/javascript" language="JavaScript" src="jquery-1.3.1.min.js"></script>
	<script type="text/javascript" language="JavaScript">
		$(document).ready(function(){
			$('#test').change(function(){
				alert($(this).val())
			})
			$('<option value="1">111</option><option value="2">222</option>').appendTo('#test')
		})
	</script>
	<body>
		<select id='test'></select>
	</body>
</html>


还有就是关于新建元素的事件绑定问题,最easy的做法是利用事件冒泡,把事件绑定在将要填加元素的父元素上,再要根据这个事件的target来判断触发事件的元素是不是自己填加的那个。

今天重构代码时候试了下事件上移。。。但是没弄好\(^o^)/~..
又发现了$("#xx").live("click", function(){alert("oo");})
jquery 1.3新加的好像是。据说性能有点损失。
42 楼 Hooopo 2009-10-10  
41 楼 Hooopo 2009-10-01  
40 楼 Hooopo 2009-09-30  
对象的constructor属性
每一个javascript对象都有一个constructor属性.这个属性对应了对象初始化时的构造函数(函数也是对象).

var date = new Date();  
alert(date.constructor);  //Date  
alert(date.constructor == "Date");  //false  
alert(date.constructor == Date);  //true  
39 楼 Hooopo 2009-09-30  
38 楼 Hooopo 2009-09-29  
location.href//链接地址
location.port//端口
location.search//查询参数,形如?q=123
location.protocol//协议
37 楼 Hooopo 2009-09-29  
alert(window.location);//返回当前url
36 楼 Hooopo 2009-09-29  
alert(window.location.host);//返回主机+端口
alert(document.domain);//只返回域名
35 楼 Hooopo 2009-09-28  

$.extend(deep, target, object1, objectN)


If no target is specified, the JQuery namespace itself is extended. This can be useful for plugin authors wishing to add new methods to JQuery.

If a boolean true is specified as the first argument, JQuery performs a deep copy, recursively copying any objects it finds. Otherwise, the copy will share structure with the original object(s).

Undefined properties are not copied. However, properties inherited from the object's prototype will be copied over.

Returns

Object

Parameters

deep (Boolean): If set, the merge becomes recursive (i.e. deep copy).
target (Object): The object to extend.
object1 (Object): The object that will be merged into the first.
objectN (Object): More objects to merge into the first.
Example

Merge settings and options, modifying settings.

jQuery Code

var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);

Example

Merge defaults and options, without modifying the defaults.

jQuery Code

var empty = {}
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = $.extend(empty, defaults, options);
34 楼 全冠清 2009-09-24  
Hooopo 写道
ok了......哇咔咔。

原本是我想下班后占32楼的,没想到没得逞。
33 楼 全冠清 2009-09-24  
引用

我这样append的option,我如何去监视他的evet呢?貌似没有触发onchange

change是可以监听到的,因为后改变是是option,而change是绑定在select上的,见
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>Untitled Document</title>
	</head>
	<script type="text/javascript" language="JavaScript" src="jquery-1.3.1.min.js"></script>
	<script type="text/javascript" language="JavaScript">
		$(document).ready(function(){
			$('#test').change(function(){
				alert($(this).val())
			})
			$('<option value="1">111</option><option value="2">222</option>').appendTo('#test')
		})
	</script>
	<body>
		<select id='test'></select>
	</body>
</html>


还有就是关于新建元素的事件绑定问题,最easy的做法是利用事件冒泡,把事件绑定在将要填加元素的父元素上,再要根据这个事件的target来判断触发事件的元素是不是自己填加的那个。
32 楼 Hooopo 2009-09-24  
ok了......哇咔咔。
31 楼 Hooopo 2009-09-24  
全冠清 写道
Hooopo 写道
其实我也隐隐约约闻到一些bad small...

在找动态添加select option的方法
我写的,觉得有点搓,不知道有没有其他好的方式
$(document).ready(function (){
  $('#country').change(function (){
    var options = ""
    $.getJSON(
      "destination/api_load_cities",
      {
        country: this.value
      },
      function(json){  
        var size = json.length;
        for(var i = 0; i < size; i++){
          options += "<option value=" + json[i].destination.id + ">" + json[i].destination.name + "</option>"
        }
        $('#city').empty()
        $('#city').append(options)
      }
      )
  });
});


  var json=[{'text':"00000",'value':"00000"},{'text':"6666",'value':"6666"}]
$(json).each(function(i){
				$('#test').append($(new Option).text(this.text).val(this.value))
			})


还用each啊,我第一次用了个for in结果不行...后来换成这么笨的方法了。现在又遇到了个问题,我这样append的option,我如何去监视他的evet呢?貌似没有触发onchange,我想在country select后加载全部city,然后获取被选中的city的值。
30 楼 全冠清 2009-09-24  
Hooopo 写道
哈哈,,继续贴

引用
jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关
获取一组radio被选中项的值
var item = $('input[@name=items][@checked]').val();
获取select被选中项的文本
var item = $("select[@name=items] option[@selected]").text();
select下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;
radio单选组的第二个元素为当前选中值
$('input[@name=items]').get(1).checked = true;

获取值:

文本框,文本区域:$("#txt").attr("value");
多选框checkbox:$("#checkbox_id").attr("value");
单选组radio:   $("input[@type=radio][@checked]").val();
下拉框select: $('#sel').val();

控制表单元素:
文本框,文本区域:$("#txt").attr("value",'');//清空内容
                 $("#txt").attr("value",'11');//填充内容

多选框checkbox: $("#chk1").attr("checked",'');//不打勾
                 $("#chk2").attr("checked",true);//打勾
                 if($("#chk1").attr('checked')==undefined) //判断是否已经打勾

单选组radio:    $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项
下拉框select:   $("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项
                $("<option value='1'>1111</option><option value='2'>2222</option>").appendTo("#sel")//添加下拉框的option
                $("#sel").empty();//清空下拉框

这个很眼熟嘛。。
29 楼 全冠清 2009-09-24  
Hooopo 写道
其实我也隐隐约约闻到一些bad small...

在找动态添加select option的方法
我写的,觉得有点搓,不知道有没有其他好的方式
$(document).ready(function (){
  $('#country').change(function (){
    var options = ""
    $.getJSON(
      "destination/api_load_cities",
      {
        country: this.value
      },
      function(json){  
        var size = json.length;
        for(var i = 0; i < size; i++){
          options += "<option value=" + json[i].destination.id + ">" + json[i].destination.name + "</option>"
        }
        $('#city').empty()
        $('#city').append(options)
      }
      )
  });
});


  var json=[{'text':"00000",'value':"00000"},{'text':"6666",'value':"6666"}]
$(json).each(function(i){
				$('#test').append($(new Option).text(this.text).val(this.value))
			})

相关推荐

    jQuery笔记

    jQuery 是一个广泛使用的 JavaScript 库,它以简洁的语法和强大的功能著称,极大地简化了网页的DOM操作、事件处理和动画制作。"写的更少,但做的更多"是jQuery的核心理念,它允许开发者用相对较少的代码实现复杂的...

    JQuery笔记JQuery笔记

    从给定的文件信息中,我们可以提炼出关于jQuery的一些核心知识点和使用技巧,这将帮助初学者和进阶用户更好地理解和应用jQuery库。 ### jQuery简介与安装 jQuery是一款流行的JavaScript库,它简化了HTML文档遍历、...

    jquery笔记总结

    完整Jquery笔记总结,xmind思维导图文档,可以下载查看。

    jquery笔记详细

    ### jQuery 笔记详解 #### 一、简介 jQuery 是一款快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画以及 Ajax 交互等操作。它极大地提高了开发者编写 JavaScript 代码的效率,并且兼容各种...

    jQuery笔记(上)

    jQuery笔记(上)涵盖了jQuery的基本用法,包括引入jQuery库、选择器的使用、事件监听与处理,以及简单的动态效果实现。这些基础知识为后续深入学习jQuery提供了坚实的基础。通过学习和实践,开发者可以更加高效地...

    jquery 笔记

    jquery 选择器 jquery 是一个快速简单的javascript library 简化了html文件 ,动画,ajax 。方便了网页技术的快速发展

    锋利的jquery笔记

    《锋利的jQuery笔记》是一份深入探讨jQuery库的宝贵资料,它主要针对JavaScript开发者,尤其是那些希望提升jQuery技能的人员。jQuery是一个轻量级、高性能的JavaScript库,它的核心功能在于简化HTML文档遍历、事件...

    jquery笔记.rar

    这个“jquery笔记.rar”文件很可能是对jQuery库的深入学习和实践总结。 **DOM操作** 1. **选择器**: jQuery提供了一套强大的选择器,如ID选择器(#id)、类选择器(.class)和元素选择器(element),以及组合选择...

    韩顺平jquery学习笔记及练习

    首先,我们来看看"韩顺平AJAX和jQuery笔记整理.doc"。AJAX(Asynchronous JavaScript and XML)是一种创建动态网页的技术,而jQuery对AJAX提供了出色的封装,使得异步数据交换变得更加简单。在这个文档中,你将了解...

    圣思园 jQuery笔记

    《圣思园 jQuery 笔记详解》 jQuery,作为一款强大的JavaScript库,它的出现极大地简化了JavaScript的DOM操作,使得网页动态化和交互性开发变得更加便捷。本文将深入探讨jQuery的选择器、过滤选择器及其在实际应用...

    jquery笔记

    jquery笔记,电脑里存放很久了,也不知道是什么时候的,希望对学习jquery的同学有帮助

    自己整理的jQuery笔记

    《jQuery笔记详解》 jQuery,作为JavaScript的一个库,极大地简化了DOM操作,提升了开发者的工作效率。它将常用的功能进行了封装,形成了一系列API,使得开发者无需关注底层实现,只需调用相应的方法即可实现复杂...

    我的JQuery笔记.doc

    《jQuery学习笔记详解》 jQuery 是一款强大的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计和Ajax交互。本笔记基于一年的学习经验,涵盖了基础到进阶的知识点,旨在帮助初学者快速掌握...

    韩顺平AJAX和jquery笔记整理

    ### 韩顺平AJAX和jQuery笔记整理 #### AJAX概览 - **定义**:Asynchronous JavaScript and XML(异步JavaScript与XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 - **运行原理**: - ...

    JS-Ajax-jQuery笔记1

    JS-Ajax-jQuery笔记,学习笔记,JavaScript,JS-Ajax-jQuery笔记,学习笔记,JavaScript,

    jQuery笔记第二天的购物车案例代码

    在本篇jQuery笔记中,我们将深入探讨购物车案例的实现,这个案例主要涉及前端开发中的交互设计和数据管理。购物车是电商网站的核心功能之一,它涉及到商品的添加、删除、数量调整等操作,同时也需要实时更新总价。...

Global site tag (gtag.js) - Google Analytics