是否有任何区别
$('input.current_title', '#storePreferences').prop('disabled', false);
和
$('#storePreferences input.current_title').prop('disabled', false);
?
是否有任何区别
$('input.current_title', '#storePreferences').prop('disabled', false);
和
$('#storePreferences input.current_title').prop('disabled', false);
?
是有区别的,并且不作为微妙别人相信。
编辑:每一个普通人的例子:
让我们来打破它选择。
首先,我们必须:上下文选择 http://api.jquery.com/jQuery/#jQuery-selector-context
$('input.current_title', '#storePreferences').prop('disabled', false);
这是说:在上下文中使用选择。 http://api.jquery.com/jQuery/#jQuery-selector-context
虽然这种形式可能会奏效,它应该是:
$('input.current_title', $('#storePreferences')).prop('disabled', false);
要么
var myContext = $('#storePreferences');
$('input.current_title', myContext).prop('disabled', false);
这满足被满足的上下文选择器的要求:“DOM元素,文档,或jQuery来作为上下文中使用”。
这是说:在使用范围内,发现里面的选择。 等效是:
$('#storePreferences').find('input.current_title').prop('disabled', false);
这就是内部发生。 查找'#storePreferences'
,并在发现所有的'input.current_title'
匹配的元素。
然后我们有:后代选择
$('#storePreferences input.current_title').prop('disabled', false);
这是后代选择(“祖先的后裔”) http://api.jquery.com/descendant-selector/它说:找到所有input.current_title
内部元素#storePreferences
元素。 这是它得到棘手! - 这正是它 -
查找所有input.current_title
(任意位置),然后寻找那些内部的#storePreferences
元件 。
因此,我们碰上jQuerys'向左选择权灒 - 所以它最初发现更多(可能)比它需要这可能是一个性能命中/问题。
因此的形式:
$('#storePreferences').find('input.current_title').prop('disabled', false);
最有可能表现得比后代更好的版本。
是否有任何区别
$('input.current_title', '#storePreferences').prop('disabled', false);
和$('#storePreferences input.current_title').prop('disabled', false);
?
所不同的是在元素是如何选择。
$('input.current_title', '#storePreferences');
相当于1:
$('#storePreferences').find('input.current_title');
但不等同于:
$('#storePreferences input.current_title');
即使相同的元素会受到影响。
他们是不一样的原因是,使用find
允许范围内返回到#storePreferences
当end
被调用。
// HANDLE: $(expr, $(...))
} else if ( !context || context.jquery ) {
return ( context || rootjQuery ).find( selector );
// HANDLE: $(expr, context)
// (which is just equivalent to: $(context).find(expr)
} else {
return this.constructor( context ).find( selector );
}
在你的问题的情况下,相同的元素将被修改,所以在功能上没有区别,但要知道你用选择的广泛影响的是很重要的。