手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

笔记:removeAttr

这个标题我扔到PHP分类下当然是有原因的。。
因为我最近在尝试用phpQuery来分析数据,但这些数据最终的样式都和我真正想要的还是有点区别,所以我要去除其中的样式,还要删除空标签,但:empty标签删除的太厉害了。不太敢用
所以我还是用正则来删除一级的标签。

除了空标签还有这些带样式的,我开始是用pq("xxx")->css("");来设置空标签,但总觉得不爽,因为这样会生成<p style="">这种多余的内容。
找了一点资料,其实jQuery的removeAttr就可以有这个功能啦。于是乎,pq("xxx")->removeAttr("style"),就解决了

做个笔记

Tags: phpquery, jquery

备份:html5 canvas cheat sheet

纯备份资料,HTML5的canvas资料
大小: 88.14 K
尺寸: 500 x 370
浏览: 2611 次
点击打开新窗口浏览全图

Tags: html5, canvas, cheat sheet

转:五段实用的js淫荡技巧

奇技淫巧?其实不能算是什么特别的东西,但有些小技巧还是可以试试的,比如说第一个,我们一般都会是用setInterval,然后每1秒执行一次,10秒后取消,但setTimeout也可以。只是意义不大而已喽
原文来自:http://www.cnblogs.com/nothingbrother/archive/2011/12/19/2293131.html

应用案例:比如你想一个函数循环执行10次,怎么办?以前通常是先setInterval,然后clearInterval,技巧一就是克服这个问题

JavaScript代码
  1. (function () {  
  2.     var i = 0;  
  3.     function job() {  
  4.         console.log(i++);  
  5.         if (i < 10) {  
  6.             setTimeout(job, 1000);  
  7.         }  
  8.     }  
  9.     job();  
  10.       
  11. })();  

上面这个job函数就只会乖乖的执行10次.然后自动停止

技巧二之高效的for循环 

应用案例:抛弃传统的循环方式

JavaScript代码
  1. (function () {  
  2.    var arr=[];  
  3.    for(var i=arr.length;i--;){  
  4.       doStuff();  
  5.    }  
  6. })();  

这个方式为什么高效?

一:少了一个参数l=arr.length;

二:for语句中间那个玩意少进行了一次计算,以前的话是for(i=0;i<l;i++)这样的话中间的语句会先比较i<l  然后比较出来的结果在

跟true 或者false比较,自然多了次计算

技巧三之高效赋值 

应用案例:抛弃传统的if判断赋值

JavaScript代码
  1. var i=1,ret;  
  2.   ret=i!==1||true;  
  3.   console.log(ret);  

以上代码会很神奇的告诉你ret会是true.高效吧不用if(i!==1)了在赋值了

技巧四之强悍的简短的attr 

应用案例:setAttribute,getAttribute.这个方法不仅可以设置标准的属性,还可以设置任意属性,兼容好

JavaScript代码
  1. function attr(elem, name, value) {  
  2.     var ret;  
  3.     if (value) {  
  4.         if (/msie [6-7]\.0/i.test(navigator.userAgent)) {  
  5.             ret = elem.getAttributeNode(name);  
  6.             if (!ret) {   //ie6 7不合法的属性设置捕鸟,通过这里可以设置  
  7.                 ret = document.createAttribute(name);  
  8.                 elem.setAttributeNode(ret);  
  9.             }  
  10.             ret.nodeValue = value + "";  
  11.         } else {  
  12.             elem.setAttribute(name, value);  
  13.         }  
  14.         return elem;  
  15.     } else {  //ie6 7有得属性获取不鸟  
  16.         ret = elem.getAttribute(name);  
  17.         fixIe = elem.getAttributeNode(name).nodeValue;  
  18.         ret = ret ? ret : fixIe ? fixIe : undefined;  
  19.         return ret;  
  20.     }  
  21. }  

以上方法如何测试呢?

 attr(document.getElementById("test"), "classxx", "xx")
 alert(attr(document.getElementById("test"),"classxx"));

技巧五之getElementsByClassName. 

应用案例 :以前js没什么框架的时候,大家都再模仿这个方法,看看今天我是怎么高效的模仿出它来.这也不愧是js初学者的经典代码

JavaScript代码
  1. (function () {  
  2.    var getElementsByClassName=function(cls,context){  
  3.       var root = context || document;  
  4.     return document.querySelectorAll ? root.querySelectorAll("." + cls) : root.getElementsByClassName ?  
  5.            root.getElementsByClassName(cls) : help("*", cls, context);  
  6.    }  
  7.    var help=function(tagName,cls,context){  
  8.         var root= context || document,  
  9.             ret=[],elems,i,  
  10.             rcls=new RegExp("^|\\s+"+cls+"\\s+|$");  
  11.         elems = root.getElementsByTagName(tagName || "*");  
  12.         for(i=elems.length;i--;){  
  13.             if(rcls.test(elem[i].className)){  
  14.               ret.push(elems[i]);  
  15.             }  
  16.         }  
  17.         return ret;  
  18.    }  
  19. })();  
以上几个js淫荡技巧还是蛮实用的,前提是你没用使用别人的js框架,用原生创造效率为前提的代码.

----------

上面的代码其实真要说的话也就这样样了,但如果你以前没有接触过原生代码,还是可以折腾的。比如最后一个函数,在JS的高版本中(或者说FF5以上,Safari5以上,)都在支持了querySelector了。这个玩意可是直接支持.class或者#id之类(就象jQuery的选择器)

多学一点东西还是有好处的。

 

 

 

 

备份资料:一般的header

HTTP/1.1 200 OK Date: Wed, 05 Nov 2003 10:46:04 GMT Server: Apache/1.3.28 (Unix) PHP/4.2.3 Content-Location: CSS2-REC.en.html Vary: negotiate,accept-language,accept-charset TCN: choice P3P: policyref=http://www.w3.org/2001/05/P3P/p3p.xml Cache-Control: max-age=21600 Expires: Wed, 05 Nov 2003 16:46:04 GMT Last-Modified: Tue, 12 May 1998 22:18:49 GMT ETag: "3558cac9;36f99e2b" Accept-Ranges: bytes Content-Length: 10734 Connection: close Content-Type: text/html; charset=utf-8 Content-Language: en

这是一个资料备份,常见的head头部

在程序中加入firephp的支持

firephp,第一次知道的时候,是在fleaphp的框架里,那时候,妖怪在里面引入了firephp的支持。
BTW:妖怪还第一次在国内的开源框架中引入了yaml的配置。果然妖。。

本文是YII官方的wiki文章,来自于:http://www.yiiframework.com/wiki/84/integrating-firephp/

  • Install Firebug plugin for Firefox from here.

  • Install FirePHP plugin for Firefox from here.

  • Download FirePHP package from here.

  • Extract 'FirePHPCoreXXX/lib/FirePHPCore' compressed folder to '/path/to/protected/components/FirePHPCore' folder.

  • At /path/to/index.php, after the line

    PHP代码
    1. $app = Yii::createWebApplication($config);   
    2. if (YII_DEBUG){  
    3.     Yii::import("application.components.FirePHPCore.fb", true);   
    4. }   
    5. $app->run();  

     

That's it! Now you can display your variables on FirePHP with a simple 'fb' command inside your PHP code:

fb($my_variable);

To view the results, open Firebug at 'console' tab and run your PHP file.

---------
不过我还没有仔细研究过,这个功能和Yii自带的WEBlog中的firebug支持有什么区别,还没有过多的研究,不发表意见。

------

看了一下源码,黑黑,突然发现,原来还可以这样玩console,嗯,又多了一个调试功能(和本文说的yii支持firephp无关)

Tags: firephp, firefox, firebug, fleaphp, yaml