前端实现-搜索关键字标红处理

1、实现效果

2、代码实现

searchNotes(data, value) {
						const searchTerms = value.split(' ');
						const aData = [];

						for (let i = 0; i < data.length; i++) {
							const item = data[i];
							let titleMatches = true;
							let gaishuMatches = true;

							for (const term of searchTerms) {
								if (!item.name.includes(term)) {
									titleMatches = false;
								}
								if (!item.gaishu.includes(term)) {
									gaishuMatches = false;
								}
							}

							if (titleMatches || gaishuMatches) {
								const searchData = {
									...item
								};
								for (const term of searchTerms) {
									const regExp = new RegExp(term, 'gi');
									if (titleMatches && searchData.name.match(regExp)) {
										searchData.name = searchData.name.replace(regExp,
											`<span style="color:red;">${term}</span>`);
									}
									if (gaishuMatches && searchData.gaishu.match(regExp)) {
										searchData.gaishu = searchData.gaishu.replace(regExp,
											`<span style="color:red;">${term}</span>`);
									}
								}
								aData.push(searchData);
							}
						}

						return aData;
					}

3、使用方式

searchlesson() {
						var that = this;
						$.ajax({
							type: 'post',
							url: "{:url('index/searchlesson')}",
							data: {
								userid: that.userId,
								key: that.searchValue
							},
							dataType: "json",
							success: function(data) {
								if (data) {
									that.searchData = data;
									if (that.searchData.length > 0) {
										var aNotes = that.searchNotes(that.searchData, that.searchValue);
										that.searchData = aNotes;
									}
								} else {
									alert("查询失败");
								}
							}
						});
					}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值