#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 отображался, но не включался в поиск