使用this和not组合两个jQuery语句
Combining two jQuery statements using this and not
我目前必须为此使用两个语句,如果可能的话,我想将其合并为一个语句。
CSS的层次结构是-
div#optionsbox1
div.checkbox
a.help
div.checkbox
a.help
我想将Class('readOnly')添加到没有单击.help的div.checkbox中。因此,如果我在第一个div复选框中单击了.help,我希望在第二个div.checkbox中应用.addClass("adOnly"),反之亦然。
以下是我目前正在使用的语法。
$("#optionsbox1 .checkbox").addClass('readOnly');
$(this).parent(".checkbox").removeClass('readOnly');
这是整个功能-
$(this).click(function()
{
if($(this).attr('checked')){
if($(this).hasClass('readOnly')){
$(this).removeClass('readOnly');
}
$("#optionsbox1 :checkbox").not(this).prop('checked',false);
$("#optionsbox1 .checkbox").addClass('readOnly');
$(this).parent(".checkbox").removeClass('readOnly');
$(this).prop('checked',true);
} else {
$(this).prop('checked',false);
$("#optionsbox1 :checkbox").removeClass('readOnly');
}
});
我不确定将其转换为一个元素会带来什么好处,但基本想法是使用not()从集合中删除元素。
var clickedBox = $(this).parent(".checkbox");
var allBoxes = $("#optionsbox1 .checkbox");
allBoxes.not(clickedBox).addClass('readOnly');
另一种方式,如果.checkbox
元素是兄弟
$(this).parent(".checkbox").siblings().addClass('readOnly');
通过+epascarello的例子和一个小改动,我能够找出如何将我的两个语句简化为一个。
epascarello原始解决方案的修改版本
$("#optionsbox1 .checkbox").not($(this).parent('.checkbox')).addClass('readOnly');
Epascarello的解决方案,我最终使用-
$(this).parent(".checkbox").siblings(".checkbox").addClass('readOnly');
相关文章:
- 让两个 jquery 脚本像它们应该的那样协同工作
- 具有相同函数名称的两个 jquery 插件之间的冲突
- 简化两个 jquery 代码
- 两个jquery幻灯片护林员
- 为什么获胜't执行两个Jquery行
- 使用this和not组合两个jQuery语句
- 我很难让两个jquery脚本一个接一个地工作
- 页面上有两个jQuery应用程序,一次只能运行一个
- 同一页面中两个 jquery 手风琴的不同样式
- 如何在两个 jquery ui 选项卡中使用弹性滑块
- Browserify:如何 aviod 两个 jQuery 实例
- 两个jquery插件,第二个不工作
- 如何解决两个 jquery 冲突
- 如何设置两个 jquery cookie
- 同时打开两个 jquery 日期选取器
- 如何处理未捕获的类型错误: $(..).弹出框不是加载两个jQuery文件时的函数
- 这两个jQuery语句中没有错误,但我只是想知道为什么
- 在同一页面中使用两个 jQuery 库
- 两个jQuery选择器有什么区别
- 同一页面上的两个 jQuery 日期选择器具有不同的 CSS 样式