为什么多了个条件 jQuery的remove就不存在了

图片描述

图片描述

图片描述

如图所示,如果按照图一的格式写 就可以顺利移除,如果按住图二 就加了个赛选条件再remove 就提示 remove not a function了???? 感觉有这错的有点牛头不对马嘴了,请求大神指点迷津! ?

阅读 3.1k
5 个回答

问题解决

把下面的代码换成

var label_aims = $('$.labels-container>a.active');

原因

hasClass不是筛选条件,而是判断条件

原理

hasClass是返回一个bool类型,$是返回一个对象,bool类型上肯定没有remove方法

建议

  1. 下次贴代码的时候不要用图片,用markdown语法
  2. 熟悉一篇Jquery文档
  3. 熟悉一下js基础

楼上回答的很全。但是我想题主是想这样?:

var $a = $('$.labels-container > a');
if($a.hasClass('active')){
   $a.remove();
}

hasClass返回的是布尔值
换成.filter('.active')就行了

首先你加hasClass出错。你就要百度hasClass是干什么的
百度结果
其次你的目的是什么?
找到.labels-container下面带有.active的a标签

var $label_aims = $('.labels-container').find('a.active');
或者
var $label_aims = $('.labels-container a').filter('.active');

hasClass 返回的是一个布尔值,布尔值中并不存在方法 remove,我根据题主的问题改了如下代码

let element = $('.labels-container>a').filter((index, el)=>{
    return $(el).hasClass('active');
});
$(element).remove();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题