在jQuery 1.9中删除了.selector属性后,它成为了该属性的替代项
Alternative to .selector property now that it is removed in jQuery 1.9
自jQuery 1.9起,jQuery对象的.selector
属性已被删除。(确切地说,我有点困惑)。事实上,我在一些独特的场景中使用它,我知道我可以做其他事情来防止这种情况只是想知道是否有人知道从1.9开始抓选择器的另一种方法
$('#whatever').selector // (would of returned '#whatever')
我需要.selector的一个例子是,当我已经有一组名称的复选框时,我想看看在该组中,哪个被选中:
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
从文档中:.jQuery对象上的选择器属性
jQuery上弃用的.selector属性的剩余用途对象用于支持弃用的.live()事件。在1.9中,jQuery没有尝试在链式方法中维护此属性的时间更长,因为.live()从未支持使用链式方法。请勿对jQuery对象使用.selector属性。jQuery迁移插件不会尝试维护此属性。
实际上需要原始选择器的原因应该不多。在您的特定用例中,如果您想缩小所选元素的范围,可以使用.filter
[docs]:
$test.filter(':checked').attr('id')
$('#whatever').selector
似乎仍然有效。文档中说"在1.9中,jQuery不再试图在链式方法[…]中维护此属性"http://api.jquery.com/selector声称它在1.9中被删除。我不知道,这有点令人困惑。
我只需要将选择器保存在这样的变量中:
var testSelector = 'input[name="test"]';
var test = $(testSelector);
console.log( $(testSelector + ':checked').attr('id') );
对于我正在处理的代码,我能够替换
if ($elem.selector == 'date-column-filter')){
带有
if ($elem.hasClass('date-column-filter')){
相关文章:
- 变量属性jQuery
- 扫描具有相同命名和插入值的所有数据属性-jQuery
- 查找具有特定数据属性jQuery的元素
- 自定义属性jquery Datatables
- 在布尔属性JQuery之间切换
- 如何替换属性 JQuery 中的子字符串
- 如果我滚动并刷新我的网页,我的导航标题会失去其属性.JQuery
- 查找具有特定数据属性 jquery 的最接近的上一个元素
- 未捕获的类型错误:对象 [对象对象] 的属性“jQuery”不是函数
- 获取自定义属性 jQuery
- 来自输入属性 jQuery 的数组
- 使用名称属性jQuery从下拉列表中获取所选文本
- 筛选数据属性 jQuery
- 使用带有下拉选择的自定义属性jQuery选择器(取2)
- 使用带有下拉选择的自定义属性jQuery选择器
- 选择HTML<输入>缺少类型属性-jQuery的元素
- 数据属性 jQuery 的最高和最低
- 将数据属性设置为按钮并链接所述属性jquery的值
- 检查空属性jquery
- 变换属性jquery