对多个输入选择器使用单个脚本

Use single script for multiple input selectors

我想将下面的代码更改为在多个地方只有一个 id,而不是使用多个 id(keyboard1keyboard2keyboard3 等)。

我需要使用多个输入框的脚本。

<div class="col-md-6 mt-20 flip">
    <div class="input-group">
        <input id="search_field" type="text" id="" class="search_field form-control">
        <span class="input-group-addon key-show"><i class="fa fa-keyboard-o"></i></span>
    </div>
    <div id="keyboard" class="keyboard show-allkey"></div>
</div>

<div class="col-md-6 mt-20 flip">
    <div class="input-group">
        <input id="search_field1" type="text" id="" class="search_field form-control">
        <span class="input-group-addon key-show"><i class="fa fa-keyboard-o"></i></span>
    </div>
    <div id="keyboard1" class="keyboard show-allkey"></div>
</div>
<div class="col-md-6 mt-20 flip">
    <div class="input-group">
        <input id="search_field2" type="text" id="" class="search_field form-control">
        <span class="input-group-addon key-show"><i class="fa fa-keyboard-o"></i></span>
    </div>
    <div id="keyboard2" class="keyboard show-allkey"></div>
</div>

$('#keyboard').jkeyboard({      
  layout: "english",
  input: $('#search_field')
});
$('#keyboard1').jkeyboard({     
  layout: "english",
  input: $('#search_field1')
});
$('#keyboard2').jkeyboard({     
  layout: "english",
  input: $('#search_field2')
});

我的演示 url:https://rawgit.com/saravanasksp/jkeyboard/master/index.html

应该这样做:

$('.keyboard').each(function() {
    $(this).jkeyboard({
        layout: "english",
        input: $(this).prev('.input-group').find('.search_field');
    });
});

each 循环中循环 class。这将公开单个实例并允许您遍历以获取关联的搜索字段

$('.keyboard').each(function() {
  const $input = $(this)
  $input.jkeyboard({
    layout: "english",
    input: $input.prev().find('.search_field')
  });    
});