jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery选择器奇怪 – 这是一个错误还是我做错了?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
通过以下测试,我在浏览器中获得了不一致的结果:

============ test.html ===========

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/Strict.dtd">

<html lang="en">
<head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
</head>
<body>
<script>

var xml;



$.ajax({
  type: "GET",url: "data.xml",success: function(data){
      var node = $("CI:first",data);
      var query1 = $("T TX",nodE).length;
      var query2 = $("T",nodE).find("TX").length;


      var msg = '$("T TX",nodE).length: ' + query1;
      msg += "\n";
      msg += '$("T",nodE).find("TX").length: ' + query2;
      alert(msg);
  }
});


</script>
</body>
</html>

============ data.xml ===========

<?xml version="1.0" encoding="ISO-8859-2"?>
 <CNs>
   <CI>
     <T>
       <TX></TX>
     </T>
   </CI>
   <CI>
     <T>
       <TX></TX>
     </T>
   </CI>
   <CI>
     <T>
       <TX></TX>
     </T>
   </CI>
 </CNs>

应该发生的是:

>通过ajax调用加载xml
>选择一个xml节点:$(“CI:first”,data);
>选择该节点内的节点:$(“T TX”,节点)
>第二个选择应该只有一个“TX”标签

但是,在IE6和IE8(尚未尝试IE7)中,第二个选择似乎忽略了“节点”上下文,并搜索整个xml文档.测试在FireFox和Safari中按预期运行.这样做可以在IE $(“T”,节点).find(“TX”)中使用.任何解释为什么$(“T TX”,节点)在IE中不起作用?

解决方法

我的猜测是JQuery代码中的一个错误:首先.我记得很久以前看到一个关于让IE允许第一个孩子的CSS伪类工作的事情,你需要有一个DOCTYPE. XML上没有doctype ……所以也许就是这样.

我只想从$(“CI:first”)切换到$(“CI”).eq(0). $(“CI”)将给出所有CI元素的数组,而eq(0)将为您提供第一个元素.

大佬总结

以上是大佬教程为你收集整理的jquery选择器奇怪 – 这是一个错误还是我做错了?全部内容,希望文章能够帮你解决jquery选择器奇怪 – 这是一个错误还是我做错了?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。