您的位置:

首页 >

腾博会官方网 >

腾博会官方网:jQuery操作checkbox选择(list/table) >

腾博会官方网:jQuery操作checkbox选择(list/table)

2016-04-03 10:28:11

分类:腾博会官方网

1、checkbox list选择效果图:代码:复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src="Scripts/jquery-1.7.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { // 全选 $("#btnCheckAll").bind("click", function () { $("[name = chkItem]:checkbox").attr("checked", true); }); // 全不选 $("#btnCheckNone").bind("click", function () { $("[name = chkItem]:checkbox").attr("checked", false); }); // 反选 $("#btnCheckReverse").bind("click", function () { $("[name = chkItem]:checkbox").each(function () { $(this).attr("checked", !$(this).attr("checked")); }); }); // 全不选 $("#btnSubmit").bind("click", function () { var result = new Array(); $("[name = chkItem]:checkbox").each(function () { if ($(this).is(":checked")) { result.push($(this).attr("value")); } }); alert(result.join(",")); }); }); </script> </head> <body> <div> <input name="chkItem" type="checkbox" value="今日话题" />今日话题 <input name="chkItem" type="checkbox" value="视觉焦点" />视觉焦点 <input name="chkItem" type="checkbox" value="财经" />财经 <input name="chkItem" type="checkbox" value="汽车" />汽车 <input name="chkItem" type="checkbox" value="科技" />科技 <input name="chkItem" type="checkbox" value="房产" />房产 <input name="chkItem" type="checkbox" value="旅游" />旅游 </div> <div> <input id="btnCheckAll" type="button" value="全选" /> <input id="btnCheckNone" type="button" value="全不选" /> <input id="btnCheckReverse" type="button" value="反选" /> <input id="btnSubmit" type="button" value="提交" /> </div> </body> </html> 2、checkbox table选中效果图: 代码:复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type="text/css"> table { border-collapse: collapse; } td { border: 1px solid #ccc; } </style> <script src="Scripts/jquery-1.7.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { // chkAll全选事件 $("#chkAll").bind("click", function () { $("[name = chkItem]:checkbox").attr("checked", this.checked); }); // chkItem事件 $("[name = chkItem]:checkbox").bind("click", function () { var $chk = $("[name = chkItem]:checkbox"); $("#chkAll").attr("checked", $chk.length == $chk.filter(":

前段时间被IE和JavaScript脚本引擎的Memory Leak问题弄得郁闷坏了,不过幸好现在总算是柳暗花明了,并且找到了一些IE中使用脚本避免ML问题的方法。继续研究JavaScript的编写,有发现一些不算ML问题,但是可以节约IE内存使用的方法,在此和大家讨论讨论。    我们在JavaScript中编写代码,对于定义函数的语句: function foo(){    // TODO: . . .    return x;}可以说是在熟悉不过了。当然除了这种定义函数的方法,我们还有另外几种方法也能定义函数:var foo = function(){    // TODO: . . .    return x;}var foo = new Function('{/*todo*/return x;}');    后两种方法定义的JavaScript函数,在调用起来和第一种没有任何效果上的区别。    不过由于JavaScript是解释性语言,当我们定义一个函数的时候,解析引擎生成一个Function对象实例,然后把函数内容保存下来。所以每执行一次函数定义语句,就会生成一个函数。而不像编译语言,一个函数编译一次后就被任何语句调用。啊?难道JavaScript不能调用定义好的函数?不是这个意思了,当我们在制作JavaScript控件时,如果动态输出DHTML来作为控件的内容,就容易出现这样的问题。比如我们在一个HTML对象生成过程中,使用了inline方式定义的函数,那么这个元素生成几次,那个函数也就要同时生成几次。 function TestObject.prototype.Render(doc, id) {    var span = doc.createElement('SPAN');    span.Object = this;    this.m_Element = span;    if ( id == "NamedMethod" )    {        span.onclick = asdf;    }    else    {         span.onclick = function()        {            var asdf01 = ['a', 's', 'd', 'f'];            var asdf02 = ['a', 's', 'd', 'f'];            var asdf03 = ['a', 's', 'd', 'f'];            var asdf04 = ['a', 's', 'd', 'f'];            var asdf05 = ['a', 's', 'd', 'f'];            var asdf06 = ['a', 's', 'd', 'f'];            var asdf07 = ['a', 's', 'd', 'f'];            var asdf08 = ['a', 's', 'd', 'f'];            var asdf09 = ['a', 's', 'd', 'f'];            var asdf10 = ['a', 's', 'd', 'f'];            var asdf11 = ['a', 's', 'd', 'f'];            var asdf12 = ['a', 's', 'd', 'f'];        };    }    span.Name = this.m_Description;    span.innerText = this.m_Name;    span.style.display = 'block';    return span; }    函数span.onclick = function()中的内容是用来占位置的,这样inline方式定义函数,每次Render()都就会生成一个新的函数对象。使用inline方式有什么不好呢?当对象实例多了的时候,会很明显的浪费内存空间呀,试验数据如下:     Normal Method  Inline Method  Initialized  27.4 M27.4 M Rendered  33.4 M35.2 M    // IE消耗的内存数量(PM+VM)    单看绝对内存消耗差别不大,可是如果看相对内存消耗:(35.2-33.4)/(33.4-27.4) = 30% !!!,还是很可观的了,而且如果方法本省越大,inline时冗余数据就越多。    附测试代码: <html><head>    <title>JScript Function Spending</title>    <meta name="author" content="[email protected]博客园" /> </head><body onunload="ReleaseElements()">    <button id="NamedMethod" onclick="GenerateObjects(this)">        Append Normal Elements</button>    <button id="AnonymousMethod" onclick="GenerateObjects(this)">        Append Inline Elements</button>    <div id="container">    </div>    <script language="Javascript">function GenerateObjects(elmt){    var room = document.getElementById('container');    for ( var i=0 ; i < 1000 ; ++i )    {         var obj = new TestObject('__Object__' + i);         room.appendChild(obj.Render(document, elmt.id));    } }function TestObject(name){    this.m_Name = name;    this.m_Description = '';    this.m_Element = null;             this.toString = function()    {         return '[class TestObject]';     }}function TestObject.prototype.Render(doc, id){    var span = doc.createElement('SPAN');    span.Object = this;    this.m_Element = span;    if ( id == "NamedMethod" )    {         span.onclick = asdf;    }    else    {          span.onclick = function()         {             var asdf01 = ['a', 's', 'd', 'f'];             var asdf02 = ['a', 's', 'd', 'f'];             var asdf03 = ['a', 's', 'd', 'f'];             var asdf04 = ['a', 's', 'd', 'f'];             var asdf05 = ['a', 's', 'd', 'f'];             var asdf06 = ['a', 's', 'd', 'f'];             var asdf07 = ['a', 's', 'd', 'f'];             var asdf08 = ['a', 's', 'd', 'f'];             var asdf09 = ['a', 's', 'd', 'f'];             var asdf10 = ['a', 's', 'd', 'f'];             var asdf11 = ['a', 's', 'd', 'f'];             var asdf12 = ['a', 's', 'd', 'f'];         };    }    span.Name = this.m_Description;    span.innerText = this.m_Name;    span.style.display = 'block';    return span;}function asdf(){    var asdf01 = ['a', 's', 'd', 'f'];    var asdf02 = ['a', 's', 'd', 'f'];    var asdf03 = ['a', 's', 'd', 'f'];    var asdf04 = ['a', 's', 'd', 'f'];    var asdf05 = ['a', 's', 'd', 'f'];    var asdf06 = ['a', 's', 'd', 'f'];    var asdf07 = ['a', 's', 'd', 'f'];    var asdf08 = ['a', 's', 'd', 'f'];    var asdf09 = ['a', 's', 'd', 'f'];    var asdf10 = ['a', 's', 'd', 'f'];    var asdf11 = ['a', 's', 'd', 'f'];    var asdf12 = ['a', 's', 'd',

1、设置标签(如img, div等等)的样式:将position设置为absolute,例如: <div style="position:absolute" id="move_id" onmousedown="mousedown()" onmouseup="mouseup()"> 2、用一个临时元素来记录标签的状态 。将临时元素的display设置为none ,隐藏这个临时元素,这里使用了input 扮演临时元素。值为0表示这个标签没有被移动过。当你的鼠标在这个标签上按下的时候,它的值被设置为1,表示准备拖放和移动。 <input type="text" style="display:none" id="temp_id" value="0"> 3、象下面一样设置 <body> : <body onmousemove="mousemove();"> 4、最后看下JavaScript函数了: 代码 复制代码 代码如下:

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jquery</title> <script type="text/javascript" src="jquery-1.7.2.js"></script> <script type="text/javascript"> $(function(){ //append()的用法 //$("ul").append("<li title='abc'>hello</li>"); //$("ul").append("<li title='xyz'>world</li>"); //appendTo()的用法 $("<li title='xyz'>hello</li>").appendTo($("ul")); }); </script> </head> <body> <p title="hello world">您认为圣思园培训好不好呢?</p> <ul> <li title="1">好</li> <li title="2">很好</li> <li title="3">非常好</li> <li title="4">特别好</li> <li title="5">太好了</li> <li title="6">好的无法描述了</li> </ul> </body> </html> 在已有的节点上操作 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jquery4</title> <script type="text/javascript" src="jquery-1.7.2.js"></script> <script type="text/javascript"> $(function(){ var li1 = $("<li title='abc'>hello</li>"); var li2 = $("<li title='abc'>world</li>"); var li3 = $("<li title='abc'>hello world</li>"); $("ul").append(li1); $("ul").prepend(li2); $("ul li:eq(4)").after(li3); }); </script> </head> <body> <p title="hello world">您认为圣思园培训好不好呢?

复制代码 代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>jQuery自定义选项卡插件</title><style>body, ul { padding:0; margin:0; }li { list-style:none; }#tabs { zoom:1; }#tab:after { content:""; display:block; clear:both; }#tabs li { float:left; padding:10px; color:#FF8900; background:#FFF; cursor:pointer; }#tabs .active { background:#FF8900; color:#FFF; }#tabContent { background:#FF8900; color:#FFF; padding:10px; clear:both; }#tabContent div { display:none; }#tabContent div.active { display:block; }</style></head><body><ul id="tabs">  <li data-tab="users">Users</li>  <li data-tab="groups">Groups</li></ul><div id="tabContent">  <div data-tab="users">Users Content</div>  <div data-tab="groups">Groups Content</div></div><script src="http://code.jquery.com/jquery-1.9.1.min.js"></script><script>jQuery.fn.tabs = function (control) {    var element = $(this);    var control = $(control);    element.delegate('li', 'click', function () {        // 遍历选项卡名称        var tabName = $(this).attr('data-tab');        // 点击选项卡时触发自定义事件        element.trigger('change.tabs', tabName);    });    // 绑定到自定义事件    element.bind('change.tabs', function (ev, tabName) {        element.find('li').removeClass('active');        element.find('>[data-tab=' + tabName + ']').addClass('active');    });    element.bind('change.tabs', function (ev, tabName) {        control.find('>[data-tab]').removeClass('active');        control.find('>[data-tab=' + tabName + ']').addClass('active');    });    // 激活第 1 个选项卡    var firstName = element.find('li:first').attr('data-tab');    element.trigger('change.tabs', firstName);    return this;};jQuery(function ($) {    $('#tabs').tabs('#tabContent');    $('#tab').bind('change.tabs', function (ev, tabName) {        window.loaction.hash = tabName;    });    $(window).bind('hashchange', function () {        var tabName = window.location.hash.slice(1);        $('#tabs').trigger('change.tabs',

焦点访谈

最新最热的文章

更多 >

COPYRIGHT (©) 2017 Copyright ©2017 腾博会官网 网站地图

联系我们

827570882

扫描二维码分享到微信