用 jQuery 获取 iframe 父页面元素
也是群里的问题(我发现没事在群里鬼混一下还真能开放思路学到东西啊)
不说废话, 代码如下:
-
$('#objId', parent.document);
-
// 搞定...
-
/*
-
以前一直不理解这第二个参数应该在什么情况下用,
-
今天终于知道了, 撒花, 庆祝...
-
*/
也是群里的问题(我发现没事在群里鬼混一下还真能开放思路学到东西啊)
不说废话, 代码如下:
今天 jQuery 群里提出一个有趣的话题: children 和 find 函数, 能否取到 <p> 里的 <div> 元素.
这问题初看起来答案似乎是肯定的, 容器标签互相可以嵌套, 没道理取不到啊.
但经过试验, 结果很令人不解, 因为确实取不到 <p> 里的 <div> 元素.
参考代码如下:
一段非常普通, 看似没什么问题的代码, 用 jQuery 取 div 元素:
为什么呢? 怀疑 jQuery 框架? selector? RP? ... no! 都不是. 答案是 w3c 标准. (//todo, 找参考资料)
<p> 标签在遇到 <div> 标签后会自动关闭, 各浏览器引擎解析上面的 html 代码会得到下面的结果.
IE
Firefox
Chrome
看, 小问题引发大麻烦... 上面的代码实际上也是不符合 html 标签的语义的. 所以在构建看似简单的 html 时也得注意, 除了了解各标签的语义外, 还要了解标准是怎样的, 掌握规则才不会被灵异事件纠缠...
jQuery 的选择器中已经定义了丰富的过滤器, 例如 :first, :last, :checkbox 等... 但有时难以适应应用的复杂需求, 这时候我们可以通过自定义过滤器来满足一些特殊需求, 看下面的代码:
演示: http://labs.phpz.org/jquery_test/myfilter.html
html 代码:
javascript 代码:
回调函数有4个参数, 并返回一个布尔值, 以确定当前元素是否符合过滤器要求, 4个参数分别代表:
偶的简单实现:
http://labs.phpz.org/jquery_test/checkbox_tree.html
一个 jQuery 插件:
http://static.geewax.org/checktree/index.html
update:
今天(2009/4/9)受群里高人指点, 代码又节约了一点(最近脑子不好使了, 难道真的老了??):
上午在一 jQuery 群里有朋友问到如何隐藏表格列, 我想都没想就说需要循环. 晚上没事又想了一下发现我错了.
"用循环" 这回答不仅是对提问者的不负责任, 简直是对 jQuery 的侮辱, 实际上很简单的一句话就可以实现对任意(一或多)表格列的隐藏. 这也是 jQuery 所崇尚的 write less, do more 精神的具体体现.
最初我研究的代码是:
后来群里一位叫 "[京]金山" 的朋友指出, 可以用下面的代码实现同样的功能:
而且这样的写法更直观, 效率也比上面的稍高. 非常感谢金山同学, 偶又学到一个用法, 对 jQuery 又有进一步了解.
后来测试, 去掉 table 效率还会有所提高, 但还不是很确定, 只是从多次测试的数据观察来的. 有时间游一下代码看看.
另外 :nth-child 还支持 :nth-child(2n+1) 这种写法, 返回奇数项, 2n 返回偶数项, 或者用 odd 和 even 代替公式. 当然, 类似 3n+5, 4n 这样的写法也是可以的. nth-child 的翻译应该就是 "第n个孩子" ... 囧...
值得注意的是 :nth-child(odd) 和 : 是有区别的: : 是所有返回项整体排序后其中的奇数项, 并且索引从0开始; 而 :nth-child(odd) 则是针对修饰项的子元素进行过滤和运算的(:nth-child 被称为 Child Filter), 并且索引是从1开始的.
更详细的内容参考 jQuery 文档 Selectors 部分, 看来没事读读文档还是相当有必要的, 马上去通读一下吧.
----- 补充分割线 -----
还忘记说一点, jQuery 这个选择器效率还是挺高的, 我对一个 900 行 5 列的表格做了测试, 隐藏某1列的话(也就是隐藏900个单元格), IE 8 是 350ms 左右, firefox 330ms 左右, opera 90ms 左右, chrome 50ms 左右.
还是 chrome 牛逼啊, 对 firefox 很失望...
官方有提供一个文档: http://docs.jquery.com/Events/jQuery.Event 但关于 event.which 和 event.ctrlKey 之类的都未提及。于是偶做了以下测试:
整理出一些比较有用的属性:
jQuery.Event 支持的属性在源码中可以看到(第 2710 行), 他们是:
btw: 如果谁有更详细的关于 jQuery.Event 的说明请回复本日志或 Mail 给我, 感激不尽.
脚本安装地址: http://userscripts.org/scripts/show/42569
Display/Insert iPhone's Emoji icon on webpages. 显示/插入 iPhone 的 emoji 表情。

脚本安装地址: http://userscripts.org/scripts/show/43117
Tip:The helper is available when the input background color turns into light blue as the image.
输入 @ 或 用户名 可以自动完成


或者点击好友列表头像上的图标直接 reply 或 send direct message.
