当前位置: 首页 > wzjs >正文

南宁手机端建站模板360推广怎么收费

南宁手机端建站模板,360推广怎么收费,网站域名设计,广州营销网站建设公司排名题目要求 请使用 Vue 或原生DOM ,完成 index.html 文件中的 TODO 部分。 1. 完成数据请求(数据来源 ./data.json),data.json 是宋词数据,poetry_content 表示词句,title 表示词牌名,author 表示…
  • 题目要求

请使用 Vue 或原生DOM ,完成 index.html 文件中的 TODO 部分。
1. 完成数据请求(数据来源 ./data.json),data.json 是宋词数据,poetry_content 表示词句,title 表示词牌名,author 表示词人。
2. 在输入框输入关键词时在 ul(class = suggestions)的元素中实时显示词牌名、词句、词人中包含关键词的完整词句(包含词牌名、词人)列表,当关键词为空或者匹配不到时 ul(class = suggestions)元素的子节点为空。完整词句的 DOM 结构按照如下规定显示:
<!-- 每一首完整词句用一个 li 包裹 -->

<li>
<span class="poet">词句</span>
<span class="title">词牌名 - 词人</span>
</li>


例:

<li>
<span class="poet">常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。
争渡,争渡,惊起一滩鸥鹭</span>
<span class="title">如梦令 - 李清照</span>
</li>


3. 高亮匹配到的所有词句中的关键词。即使用 <span class="highlight"></span> 标签
包裹所有关键词。例:(关键词:雨)

<li>
<span class="poet">寒蝉凄切,对长亭晚,骤<span class="highlight">雨
</span>初歇。都门帐饮无绪,方留恋处,兰舟催发。执手相看泪眼,竟无语凝噎。念去
去千里烟波,暮霭沉沉楚天阔。多情自古伤离别,更那堪冷落清秋节。今宵酒醒何处,杨柳
岸晓风残月。此去经年,应是良辰美景虚设。便纵有千种风情,更与何人说</span>
<span class="title"><span class="highlight">雨</span>霖铃 - 柳永
</span>
</li>


注意:本题要求的是实时显示,即输入完成的同时显示结果,非失去焦点显示

  • 目标分析

目标一:完成数据请求(数据来源 ./data.json)

使用fetch直接获取数据,并且对数据的格式进行处理。

// 获取数据fetch("./data.json").then((res) => res.json()).then((data) => {poetdata = data;// console.log(poetdata);});

目标二:通过input中的输入,进行实时搜索。完成input中输入的获取,以及需要实时进行搜索。

为了实时获取input中输入的数据,设置一个事件监听器。

input.addEventListener("input", function (e) {const keyword = e.target.value;suggestionsList.innerHTML = "";if (!keyword) {return;}

目标三:通过获取到的关键字在获取到的数据中进行搜索。

将用户输入的 keyword 转换为小写(lowerKeyword),确保搜索不区分大小写。将每个数据项的 poetry_contenttitleauthor 也转换为小写,与 lowerKeyword 进行比较。

使用 includes() 方法,检查关键词是否是目标字段的子串(无需完全匹配)。

const results = poetdata.filter((item) => {const lowerKeyword = keyword.toLowerCase();return (item.poetry_content.toLowerCase().includes(lowerKeyword) || // 检查词句item.title.toLowerCase().includes(lowerKeyword) || // 检查词牌名item.author.toLowerCase().includes(lowerKeyword) // 检查词人);});

目标四:将搜索到的数据按照一定的格式渲染到页面中。

results.forEach((item) => {const li = document.createElement("li");li.innerHTML = `<span class="poet">${item.poetry_content}</span><span class="title">${item.title}-${item.author}</span> `;suggestionsList.appendChild(li);});

目标五:将结果中的关键字进行高亮处理。

将用户输入的 keyword 包裹在捕获组 () 中,生成正则表达式,并使用 gi 修饰符(全局匹配 + 不区分大小写)。

function highlight(text, keyword) {const regex = new RegExp(`(${keyword})`, "gi");return text.replace(regex, `<span class="highlight">$1</span>`);}

然后再输出代码中添加高亮。

  • 完整代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>绝美宋词</title><link rel="stylesheet" href="css/style.css" /><script src="./js/axios.min.js"></script></head><body><div class="container"><h1 style="text-align: center">输入关键字,找一首词</h1><div class="search-form"><inputtype="text"id="searchInput"class="search"placeholder="词牌名 词句 词人"/><ul class="suggestions" id="suggestionsList"><li><!-- 示例 --><!-- <span class="poet"></span> --><!-- <span class="title"></span> --></li></ul></div></div><script>// TODO:待补充代码window.onload = function () {let poetdata = [];// 获取数据fetch("./data.json").then((res) => res.json()).then((data) => {poetdata = data;// console.log(poetdata);});// 获取输入框const input = document.querySelector("#searchInput");const suggestionsList = document.querySelector("#suggestionsList");// input监听器input.addEventListener("input", function (e) {const keyword = e.target.value;suggestionsList.innerHTML = "";if (!keyword) {return;}// 数组一部分的浅拷贝const results = poetdata.filter((item) => {const lowerKeyword = keyword.toLowerCase();return (item.poetry_content.toLowerCase().includes(lowerKeyword) || // 检查词句item.title.toLowerCase().includes(lowerKeyword) || // 检查词牌名item.author.toLowerCase().includes(lowerKeyword) // 检查词人);});// console.log(results);results.forEach((item) => {const li = document.createElement("li");li.innerHTML = `<span class="poet">${highlight(item.poetry_content,keyword)}</span><span class="title">${highlight(item.title, keyword)}-${highlight(item.author,keyword)}</span>`;suggestionsList.appendChild(li);});});// 高亮处理function highlight(text, keyword) {const regex = new RegExp(`(${keyword})`, "gi");return text.replace(regex, `<span class="highlight">$1</span>`);}};</script></body>
</html>

http://www.dtcms.com/wzjs/115059.html

相关文章:

  • 佛山营销手机网站建设杭州seo技术
  • 绿叶网站怎么做泰安百度推广代理
  • 郴州做网站的公司有产品怎么找销售渠道
  • 网站邮件设置方法南宁seo费用服务
  • 免费插画素材网站推广软文代写
  • 电商网站建设方案关键词优化案例
  • 群辉nas怎么做网站低价刷赞网站推广
  • 代刷网站推广链接快手百度指数官方
  • wordpress做网站怎么样sem推广外包
  • 在网站做推广属于广告费吗湖南百度推广
  • 电子商务网站建设内涵杭州百度开户
  • 树莓派可以做网站的服务器吗免费公司网站建站
  • 合肥高端网站建设工作室本地推广最好用的平台
  • 注册博客域名做视频网站会怎么样电商网站大全
  • 佛山网站建设公司大全线下推广方式都有哪些
  • 网络教育做的好的网站百度云资源搜索引擎入口
  • 网站建设安全规划抖音广告代运营
  • 新网站怎么做seo 风享交换友情链接的要求有
  • 网站建设费用评估广告网
  • 校园网站服务建设app推广平台网站
  • 北堂网站制作舆情监测分析系统
  • 医药网站建设需要注意点杭州百度快照优化公司
  • 建设部证书公布网站哈尔滨网络推广
  • not found的网站淘宝运营培训课程
  • 珠海模板网站建设公司推特最新消息今天
  • 免费网站建设培训合肥百度seo代理
  • 番禺做网站600元杭州谷歌seo公司
  • 百度网站置顶怎么做营销推广公司
  • 衡水做wap网站费用百度地图疫情实时动态
  • 手表网网站关键词抓取工具都有哪些