使用jQuery添加/删除css类,通过css类识别元素
Add/Remove css class using jQuery to identify elements by a css class
我在下面有一个javascript/jQuery函数:
function hideShowHiddens(action){
$('.hidden_col').each(function(){
if(action == 'show'){
this.removeClass("hidden");
}else{
this.addClass("hidden");
}
});
}
它应该做的是用空标记css '.hidden_col'搜索jsp中的每个元素。然后根据输入的参数,它将添加或删除另一个名为'的css类。"隐藏"实际上隐藏了元素。
这个方法将理想地为我节省400行javascript函数,这对于我需要处理的数据量来说太慢了。然而,当它运行时,我从浏览器得到一个错误,说它不支持这个方法。谁能告诉我为什么这个不工作或如何解决它?
.addClass()
和.removeClass()
为jQuery函数。jQuery对象是标准DOM对象的超集。您需要包装DOM对象以创建jQuery对象。然后函数就可以访问了。
function hideShowHiddens(action){
$('.hidden_col').each(function(){
if(action == 'show'){
$(this).removeClass("hidden");
}else{
$(this).addClass("hidden");
}
});
}
例子: JSFiddle
选择:
这里有一个更短、更甜的替代品。
function hideShowHiddens(action){
(action === "show") ? $('.hidden_col').show() : $('.hidden_col').hide();
}
您缺少$ selector
,请尝试此$(this).removeClass("hidden")
和$(this).addClass("hidden");
具体的问题是this
是一个DOM元素,而不是一个jQuery对象。您可以将代码简化为省略.each
循环:
function hideShowHiddens(action){
$('.hidden_col').toggleClass('hidden', action !== 'show');
}
参考:https://api.jquery.com/toggleClass/toggleClass-className-switch
相关文章:
- 单击更改图标并通过javascript添加一个css类
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 关于引入外部javascript文件的问题&css通过https
- Android Webview通过Javascript注入CSS
- 我可以通过JQuery将CSS类交换为一个特殊的元素集吗
- 如何通过按键激活按钮应用CSS效果
- Javascript通过列表项的函数和css来更改背景颜色
- 通过DRAGGABLE将一个DIV移动到另一个DIF下?(CSS,JQuery)
- 通过CSS Selector将参数传递给javascript函数
- 当一些事情可以通过JS或CSS完成时,我应该选择哪种方式
- 我是否可以使用 CSS 通过选择器指定要设置的类
- 无法让 CSS 通过 Javascript 更改类
- css通过不同的动画旋转(循环?)
- CSS通过id递增
- 动态异步加载CSS(通过在Javascript中设置“href”属性)
- CSS通过JavaScript:更改类“;“中断”;通过风格的改变
- 如何加载外部内容和应用css通过js悬停
- CSS通过jQuery不应用
- CSS通过位置或变换来移动元素
- 动态插入的CSS(通过链接)在帧加载后应用