替代 .selector 属性,因为它在 jQuery 1.9 中被删除了

Mar*_*.io 5 javascript jquery deprecated jquery-selectors jquery-1.9

从 jQuery 1.9 开始.selector,jQuery 对象的属性已被删除。(我有点困惑为什么,确切地说)。我实际上在一些独特的场景中使用它,我知道我可以做其他事情来防止这种情况。只是想知道是否有人知道从 1.9 开始获取选择器的另一种方法?

$('#whatever').selector // (would of returned '#whatever')  
Run Code Online (Sandbox Code Playgroud)

我需要.selector 的一个例子是当我已经有一组name复选框时,我想在该组中查看哪个被选中

jsFiddle 演示

var $test = $('input[name="test"]');

console.log( $test );
console.log( $(':checked', $test).attr('id') ); // returns --undefined--

console.log( 'now with .selector: ');
console.log( $($test.selector + ':checked').attr('id') ); // returns correct
Run Code Online (Sandbox Code Playgroud)

来自文档: jQuery 对象上的 .selector 属性

jQuery 对象上已弃用的 .selector 属性的其余目的是支持已弃用的 .live() 事件。在 1.9 中,jQuery 不再尝试在链式方法中维护此属性,因为 .live() 从未支持使用链式方法。不要在 jQuery 对象上使用 .selector 属性。jQuery Migrate 插件不会尝试维护此属性。

Fel*_*ing 4

实际需要原始选择器的理由应该不多。在您的特定用例中,如果您想缩小所选元素的范围,您可以使用.filter [docs]

$test.filter(':checked').attr('id')
Run Code Online (Sandbox Code Playgroud)

$('#whatever').selector不过似乎仍然有效。文档说“在 1.9 中,jQuery 不再尝试在链式方法中维护此属性[...]”。尽管http://api.jquery.com/selector声称它在 1.9 中已被删除。我不知道,这有点令人困惑。