2 回答
TA贡献1841条经验 获得超3个赞
有什么区别$('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');
即使相同的元素也会受到影响。
它们之所以不同,是因为using find允许将上下文返回到#storePreferenceswhen end调用。
1:jQuery v1.9.1源代码中的194-202行
// 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 );
}
根据您的问题,将修改相同的元素,因此功能上没有差异,但重要的是要意识到所使用选择器的广泛含义。
添加回答
举报