jquery - 使用 jQuery 将选择器分组为一类

标签 jquery grouping css-selectors simplify

我将有 20 个这样的“组”:

$("#checkbox-apple").click(function(){
    $("#graphic-apple").toggle();
}) 

$("#checkbox-orange").click(function(){
    $("#graphic-orange").toggle();
}) 

$("#checkbox-pineapple").click(function(){
    $("#graphic-pineapple").toggle();
})

不是复制每个组并更改两个单词,而是如何通过让任何复选框切换其等效图形(类似于此代码的内容)来大大缩短我的代码?:

$("#checkbox" FRUIT).click(function(){
    $("#graphic" FRUIT).toggle();
})

最佳答案

给他们一个公共(public)类(不是必需,但很有用——下面我使用“fruit”),然后这是一个简单的字符串操作:

$(".fruit").click(function() {
    $("#graphic-" + this.id.replace("checkbox-", "")).toggle();
});

(或者也许他们已经有一些您可以使用的其他常见功能。)

或者如果您不添加类:

$("#checkbox-apple, #checkbox-orange, #checkbox-pineapple").click(function() {
    $("#graphic-" + this.id.replace("checkbox-", "")).toggle();
});

您甚至可以删除 id 值并使用 data-fruit 代替:

<input type="checkbox" data-fruit="pineapple" class="fruit">

...然后:

$(".fruit").click(function() {
    $("#graphic-" + $(this).attr("data-fruit")).toggle();
});

...但我不确定这比上面的第一个解决方案能给您带来更多好处。 :-)

关于jquery - 使用 jQuery 将选择器分组为一类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14263769/

相关文章:

javascript - CSS li 没有排队。可能是周期问题

javascript - 在 ROR 中加载 AJAX 后,如何使页面跳转到顶部?

python - 对字典和聚合值数据的python列表进行分组

c# - 有没有办法在 ListView 中嵌套分组?或者我必须使用 TreeView 吗?

带分区的 SQL 分组

html - css 选择器选择页面中存在特定元素的所有元素

jquery - Bootstrap 模态在点击时不显示

javascript - 通过 Angular Directive(指令)删除然后添加元素会破坏输入 [radio] 上的 ng-model

css - 将非选择器添加到样式会破坏样式

html - nth-last-of-type 在我的 div 上不起作用?