$('.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