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,为什么的得到的结果是一样的?
而且手册上的结果,和在浏览器下执行的结果不一样。
建议用filter:
$("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("<b/>");
就是想用not,为什么浏览器的执行结果和jquery手册的的结果会不一样呢?
$("p").contents().not("[nodeType=1]")
和
$("p").contents().not("[nodeType=3]")
返回的对象目标是一致的,当然结果一样。
返回的结果为什么是一样的?你确定么?
@菜到不行:
$("p").contents().not("[nodeType=3]")
将返回一个jQuery对象,通过这个对象可以做:
1、获得原始的HTML对象,这样可以使用innerHTML或outerHTML查看比较
2、直接调用html函数,获得innerHTML,你比较就知道了。
此外,你可以把获得的所有对象的nodeType进行分析,看下他们的nodeType内容是多少。
@笨笨蜗牛: 结果我当然知道,重点是为什么返回的对象是一样的,不然我发这问题干啥?
@菜到不行: 晕倒!我不是告诉你分析方法了吗?你去分析下就知道为什么了。我没具体分析,所以也没办法给你确切的答案。
有时,给你方法比直接给你结果更重要。