首页 新闻 搜索 专区 学院

jquery not contents nodetype

0
悬赏园豆:50 [已解决问题] 解决于 2013-04-20 22:41

Html:

<p>Hello <a href="http://ejohn.org/">John</a>, how are you doing?</p>

Jquery:

$("p").contents().not("[nodeType=1]").wrap('<b></b>');

$("p").contents().not("[nodeType=3]").wrap('<b></b>');


分开执行2句jquery,为什么的得到的结果是一样的?

而且手册上的结果,和在浏览器下执行的结果不一样。

积跬步的主页 积跬步 | 菜鸟二级 | 园豆:214
提问于:2012-06-21 14:35
< >
分享
最佳答案
0

建议用filter:

$("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("<b/>");
收获园豆:30
artwl | 专家六级 |园豆:16526 | 2012-06-21 15:01

就是想用not,为什么浏览器的执行结果和jquery手册的的结果会不一样呢?

积跬步 | 园豆:214 (菜鸟二级) | 2012-06-21 19:42
其他回答(1)
1

$("p").contents().not("[nodeType=1]")

$("p").contents().not("[nodeType=3]")

返回的对象目标是一致的,当然结果一样。

收获园豆:20
无之无 | 园豆:5085 (大侠五级) | 2012-06-21 14:58

返回的结果为什么是一样的?你确定么?

支持(0) 反对(0) 积跬步 | 园豆:214 (菜鸟二级) | 2012-06-21 19:41

@菜到不行: 

$("p").contents().not("[nodeType=3]")

将返回一个jQuery对象,通过这个对象可以做:

1、获得原始的HTML对象,这样可以使用innerHTML或outerHTML查看比较

2、直接调用html函数,获得innerHTML,你比较就知道了。

 

此外,你可以把获得的所有对象的nodeType进行分析,看下他们的nodeType内容是多少。

支持(0) 反对(0) 无之无 | 园豆:5085 (大侠五级) | 2012-06-21 20:19

@笨笨蜗牛: 结果我当然知道,重点是为什么返回的对象是一样的,不然我发这问题干啥?

支持(0) 反对(0) 积跬步 | 园豆:214 (菜鸟二级) | 2012-06-27 08:59

@菜到不行: 晕倒!我不是告诉你分析方法了吗?你去分析下就知道为什么了。我没具体分析,所以也没办法给你确切的答案。

有时,给你方法比直接给你结果更重要。

支持(0) 反对(0) 无之无 | 园豆:5085 (大侠五级) | 2012-06-27 09:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册