jquery选择器的问题和效率

时间:2011-04-29 07:16:41

标签: javascript jquery

嗨我有一个问题(不是确切的问题,我已经解决了,但它至少非常有趣)在IE(7-8)移动Opera和其他浏览器中使用jquery选择器的不同行为。 这是我的例子

<div id="galleryEl"><link href="http://designclub.cz/plugins/content/plugin_jw_sig/sig.css" rel="stylesheet" type="text/css">
                <style type="text/css">.sig_cont {width:30px;height:20px;}</style>
                <script type="text/javascript" src="http://designclub.cz/plugins/content/plugin_jw_sig/mootools.js"></script>
                <script type="text/javascript" src="http://designclub.cz/plugins/content/plugin_jw_sig/slimbox.js"></script>
                <div class="sig"><div class="sig_cont"><div class="sig_thumb"><a href="http://designclub.cz/images/stories/hp/hp-falper.jpg" rel="lightbox[sig0]" title="&lt;b&gt;hp-falper.jpg&lt;/b&gt;" alt="hp-falper.jpg" target="_blank"><img src="http://designclub.cz/plugins/content/plugin_jw_sig/showthumb.php?img=hp/hp-falper.jpg&amp;width=0&amp;height=0&amp;quality=0">

        

抱歉格式化:)

问题是以下..当我在主要的现代浏览器中使用此选择器jQuery("#galleryEl .sig_thumb a").eq(index);(索引实际上是一个整数)时,它只是工作.. 但在IE(7-9)(6 ia尚未测试)它没有..当我看到IE开发者控制台时,它看起来像结果对象是某种普通的dom对象???我真的不是当然,在js中不是那么熟练,但似乎是这样:) 当我更改jQuery(".sig_thumb a").eq(index);时,它选择了正确的dom元素。标记是如此奇怪,因为它是一个joomla插件,我正在使用它动态创建背景幻灯片加入文件夹结构..所以有人知道wherefrom来这种奇怪的行为? 第二个问题..我真的想让它变得高效,那么在这种情况下哪种选择器是最好的?我知道当选择over id时,jQuery使用js native方法,在tagName的情况下也一样,等等,但我真的不确定如果这个选择器如何组合(是否更好地使用id-tag-class-someOtherStuff,或者id-class-someOtherStuff,id-someOtherStuff {如果id和结果对象之间有很多其他DOM元素}) 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

确保只有1个ID为“galleryEl”的元素。如果有多个,则取决于IE-Version和兼容模式(如果选择第一个或最后一个)。

测试示例:

<script  type="text/javascript">
jQuery(
        function($)
        {
          alert('Found:'+jQuery("#someID .someclass").eq(1).text());
        }
);
</script>
<div id="someID"><span class="someclass">1</span></div>
<div id="someID"><span class="someclass">2</span><span class="someclass">3</span></div>