2010-03-09 65 views
4

我正在使用.eq()方法來選擇已知元素的特定子元素。 IE和Chrome/FF中的元素索引看起來不同,因爲.eq(2)根據瀏覽器返回不同的值。 (我在尋找顯示爲.EQ(2)在FF /鉻,但.EQ(3)在IE元素)jQuery .eq(x)返回IE中的不同元素比FF/Chrome中的

例如,

alert($(this).parent().children().eq(2).text()); 

示出了不同的結果取決於瀏覽器。

這裏是有問題的標記:

<div> 
    <span> 
    <input onclick="player.search.Groupings($(this).parent().children().eq(2).text(), $(this).parent().children().eq(0).is(':checked'));" type="checkbox"></input> 
    <span>Fake Initiative A</span><span>1</span> 
    </span> 
    <span> 
    <input onclick="player.search.Groupings($(this).parent().children().eq(2).text(), $(this).parent().children().eq(0).is(':checked'));" type="checkbox"></input> 
    <span>Initiative B Not Real</span><span>2</span> </span> 
</div> 

(我剝離出來的屬性,內聯CSS等 - 同樣的事情發生,而不在那些地方)。

有沒有更好的方法來做到這一點?

+4

請發表您的標記和jQuery選擇。 – cletus 2010-03-09 07:33:55

+0

請附上有問題的HTML代碼和您使用的選擇器 – jitter 2010-03-09 08:37:33

+0

添加標記,thx – btk 2010-03-09 22:54:39

回答

7

我認爲這是做空文本節點,Firefox不會註冊說,< span>和<輸入>標記之間的空白,其中IE將會,因此對於FF第二個節點將是< input>標記(< span> < input>),因爲它將是文本節點(< span> - 空文本節點 - <輸入>)。

編輯:

經過一些測試(以前的答案僅僅是一個常見的問題,我碰上這樣推測它可能已經爲你相同),但問題是,IE瀏覽器的關閉標記拿起作爲一個元素在dom中。

如果你改變你的代碼,以短結束標記,即:

 
<div> 
    <span> 
    <input type="checkbox" /> 
     <span>Fake Initiative A</span><span>1</span> 
    </span> 
    <span> 
    <input type="checkbox" /> 
    <span>Initiative B Not Real</span><span>2</span> 
    </span> 
</div> 

那麼它應該工作的預測。

僅供參考我的整個測試腳本(僅提醒文本):

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
<html> 
<head> 
    <title>Title here!</title> 
    <script type="text/Javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script> 
    <script type="text/Javascript"> 
     $(function(){ 
      $("input:checkbox").bind('click', function(){ 
       alert($(this).parent().children().eq(2).text()); 
      }); 
     }); 
    </script> 
</head> 
<body> 
<div> 
    <span> 
    <input type="checkbox" /> 
    <span>Fake Initiative A</span><span>1</span> 
    </span> 
    <span> 
    <input type="checkbox" /> 
    <span>Initiative B Not Real</span><span>2</span> </span> 
</div> 

</body> 
</html> 
+1

您,先生,是一位天才和紳士。這工作完美無瑕! – btk 2010-03-10 09:30:43

相關問題