$('.Schedule .Full input').each(function(i)
{
var controls = $('.Morning input, .MorningPart input, .Afternoon input, .AfternoonPart input', $(this).parents('.Schedule'));
alert(controls.length + " Conflicting Controls\n"+
$(this).parents('.Schedule').attr('id') + " Parent");
});
當我在Firefox中運行該代碼這個函數的第一個執行產生一個警告框,說以下內容:
17衝突控制
週一父
在IE 6或7所述的完全相同的頁面運行產生一個警告框說以下內容:
45衝突控制
星期一家長
Firefox是正確的,只有17個衝突的控件。 IE正在識別的45個控件不是「星期一」的後代。如果我已經將「Monday」指定爲$()函數的上下文,那麼爲什麼IE將控件返回到它之外?
我相信。家長( )將基本上返回包括頂級主體節點的當前節點之上的文檔的整個結構。這是vs .parent(),它只會返回直接的父對象。 ()this.parent()。parent()。parent()(雖然它看起來非常難看,如果你的html結構發生變化,需要改變它),如果'this'是輸入節點, – 2009-05-06 18:33:10