Bootstrap-пользовательский поиск в таблице

#javascript #jquery #bootstrap-table

#javascript #jquery #bootstrap-таблица

Вопрос:

У меня есть пользовательский поиск, который выглядит следующим образом, но как я могу использовать его во всех столбцах, а не только в столбце colName?

https://live.bootstrap-table.com/code/janttila/5112

 function customSearch(data, text) {
    return data.filter(function (row) {

        return  row.colName.toLowerCase().replace(/s/g, "").indexOf(text.toLowerCase().replace(/s/g, "")) > -1

    })
  }
  

Комментарии:

1. Использовать search()

Ответ №1:

вы можете перебирать все столбцы. Но, возможно, предоставьте еще немного кода, чтобы получить правильное решение. Я не знаю, как именно выглядит ваш объект данных.

// РЕДАКТИРОВАТЬ: что касается вашей структуры данных, функция будет выглядеть следующим образом:

     function customSearch(data, text) {
return data.filter(function (row) {
 
  for (let items of Object.values(row)){
    if (items.toString().toLowerCase().replace(/s/g, "").indexOf(text.toLowerCase().replace(/s/g, "")) > -1){
    return true
  }
  }
})
}
  

мы перебираем все значения в строке и проверяем, соответствует ли какое-либо из них тексту поиска. Но имейте в виду, что в вашем наборе данных также есть сумма записи, которую вы не отображаете. Этот также будет включен для поиска

//EDIT2:

 function customSearch(data, text) {
return data.filter(function (row) {
 searchFor = ["id", "name", "price"]
  
 for (elem of Object.keys(row)){
   if (searchFor.indexOf(elem) < 0) {
     delete row[elem]
   }
 }

  for (let items of Object.values(row)){
    if (items.toString().toLowerCase().replace(/s/g, "").indexOf(text.toLowerCase().replace(/s/g, "")) > -1){
    return true
  }
  }
})
}
  

Комментарии:

1. live.bootstrap-table.com/code/janttila/5112

2. Да, это вроде как работает, но зависает на тех ключах объекта, которые не являются строками, мне нужно искать только row.ColumnName в объекте. и укажите, какие столбцы я хочу искать. row.colOne , row.colTwo и так далее.

3. хорошо, я добавил функцию, которая удаляет пары ключ-значение из объекта, если их нет в списке, который вы можете указать

4. Отлично! только одна проблема, которую я не могу решить. Если я удалю столбец price, он больше не будет отображать свои данные. Я хочу, чтобы ut отображался, но не включался в поиск