.selector属性的替代,现在它已在jQuery 1.9中被删除

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

$('#whatever').selector // (would of returned '#whatever')  

我需要.selector的一个示例是,当我已经有一组名称为复选框时,我想在该组内检查选中哪一个:

jsFiddle DEMO

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

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

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


应该没有太多的理由需要原始选择器。 在您的特定用例中,如果您想缩小所选元素的集合,可以使用.filter [docs]:

$test.filter(':checked').attr('id')

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

链接地址: http://www.djcxy.com/p/79041.html

上一篇: Alternative to .selector property now that it is removed in jQuery 1.9

下一篇: recording audio in the background gets interrupted by VoIP