2010-12-03 22 views
3

嘗試使用jQuery選擇同級元素,並且它在IE7中不起作用。在使用jQuery時,同級+選擇器在IE7中不起作用

這裏是我的示例代碼:http://jsfiddle.net/y7AHz/6/(點擊運行看結果)

var numberOfListItems = $("#txtInput + ul.ulContainer li").length; 
$("#output").text(numberOfListItems); 

在IE8,火狐,Safari它的工作原理(名單itmes的#出來以3)。

+0

jQuery使用sizzle.js。我很驚訝,IE7和現代瀏覽器之間有區別... – jwueller 2010-12-03 22:17:22

+0

這個組合的txtinput var numberOfListItems = $(「#txtInput + ul.ulContainer li」)有一些問題。 – kobe 2010-12-03 22:19:07

回答

3

這是known bug與IE6的滋滋聲(選擇發動機jQuery的下方),然後7.相反,使用.next(),這相當於+next adjacent選擇器和.find()。這是更詳細的,但它在IE6 +的工作原理:

var numberOfListItems = $("#txtInput").next(".ulContainer").find("li").length; 

Updated jsFiddle

0

只是試試這個工作在IE7也

var numberOfListItems = $("ul.ulContainer li").length; 
+0

這不像OP的選擇器。 – jwueller 2010-12-03 22:23:20

2

這也將在IE7工作:

var foo= $("#txtInput + ul.ulContainer"); 
var numberOfListItems = $('li', foo).length; 

$("#output").text(numberOfListItems); 

不知道該建議的修復效果最好,如果它很重要。 ..