将相同的功能应用于多个ID

时间:2014-08-02 06:39:08

标签: javascript jquery

无论如何我可以简化这个JS:

$('#collapse_notebook').on('hide.bs.collapse', function () {
  $('#notebook-caret').removeClass( "fa-caret-up" );
  $('#notebook-caret').addClass( "fa-caret-down" );
})

$('#collapse_note').on('hide.bs.collapse', function () {
  $('#note-caret').removeClass( "fa-caret-up" );
  $('#note-caret').addClass( "fa-caret-down" );
})

3 个答案:

答案 0 :(得分:3)

多个选择器链接是单词::)

如何做到这一点:演示 http://jsfiddle.net/49NBu/ (显示提取位)

<强>代码

$('#collapse_note,#collapse_notebook').on('hide.bs.collapse', function () {
  var id = $(this).prop('id').split('_')[1];

  $('#'+id+'-caret').removeClass( "fa-caret-up" );
  $('#'+id+'-caret').addClass( "fa-caret-down" );
})

答案 1 :(得分:1)

这应该有用。

('#collapse_notebook,#collapse_note').on('hide.bs.collapse', function () {
  var curr_id = this.id.split('_')[1]
  $('#'+curr_id+'-caret').toggleClass('fa-caret-up fa-caret-down');
})

答案 2 :(得分:0)

使用逗号分隔的多个选择器:

$('#collapse_notebook,#collapse_note').on('hide.bs.collapse', function () {
 $("#"+this.id.replace('collapse_','')+"-caret").removeClass( "fa-caret-up" );
 $("#"+this.id.replace('collapse_','')+"-caret").addClass( "fa-caret-down" );
});