重命名bootstrap生成的标签

时间:2018-04-28 16:45:21

标签: javascript jquery html twitter-bootstrap

我想改变"搜索"过滤器输入旁边的文本内容。 我使用表格模板并生成搜索过滤器,我想更改搜索文本,因为我想使用其他语言。

使用开发工具我发现div id是 user_data_filter ,它位于标签元素下。

我可以通过复制输入表单并更改搜索文本来改变这种情况

$('#user_data_filter label').html('Keresés:  <input type="search" class="form-control input-sm" placeholder aria-controls="user_data">'); 

但是在我改变后,过滤器不起作用,我不知道为什么......

这是HTML:

&#13;
&#13;
<html>
 <head>
  <title>Iskola Tábla</title>
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
  <script src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
  <script src="https://cdn.datatables.net/1.10.15/js/dataTables.bootstrap.min.js"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/css/bootstrap-datepicker.css" />
  <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/js/bootstrap-datepicker.js"></script>
  <style>
  body
  {
   margin:0;
   padding:0;
   background-color:#f1f1f1;
  }
  .box
  {
   width:1270px;
   padding:20px;
   background-color:#fff;
   border:1px solid #ccc;
   border-radius:5px;
   margin-top:25px;
   box-sizing:border-box;
  }
  </style>
 </head>
 <body>
  <div class="container box">
   <h1 align="center">Iskola Tábla</h1>
   <br />
   <div class="table-responsive">
   <br />
    <div align="right">
     <button type="button" name="add" id="add" class="btn btn-info">Hozzáadás</button>
    </div>
    <br />
    <div id="alert_message"></div>
    <table id="user_data" class="table table-bordered table-striped">
     <thead>
      <tr>
       <th>Ügyfél neve</th>
       <th>Termék</th>
       <th></th>
      </tr>
     </thead>
    </table>
   </div>
  </div>
 </body>
</html>

<script type="text/javascript" language="javascript" >
 $(document).ready(function(){
  fetch_data();
  function fetch_data()
  {
   var dataTable = $('#user_data').DataTable({
   });
  }
 });
</script>
&#13;
&#13;
&#13;

有人可以帮助我使用工作过滤器更改搜索文字内容吗?

2 个答案:

答案 0 :(得分:1)

这些标签和控件是数据表的一部分,在初始化之前不可用。如果您真的想继续这种方法,可以使用回调函数:

var dataTable = $ ('#user_data').DataTable({
    "initComplete": function (settings, json){
        $('# user_data_filter label').html('Keresés: <input type = "search" class = "form-control input-sm" placeholder aria-controls="user_data">');
    }
});

但是,如果我理解正确,您希望以其他语言显示数据表。因此,我强烈建议您仔细查看数据表已经为您带来的许多选项,而不是尝试重新发明轮子。

https://datatables.net/reference/option/language

https://datatables.net/manual/i18n

答案 1 :(得分:0)

您的代码似乎工作正常,您的$('#user_data_filter label').html('...');行是否已放入$(document).ready函数?这对我有用。

如果您想让替换更加动态,可以只替换“搜索”字样。该代码看起来像这样,也可以放在$(document).ready函数中。

var labelElem = $("#user_data_filter > label");
var newText = labelElem.html().replace("Search", "Keresés");
labelElem.html(newText);

JSFiddle Example.