web蓝桥杯真题:年度明星项目

代码及注释:

javascript 复制代码
//全部数据
var allData = []
// 每次需要加载的数量
var num = 15

// TODO: 请在此补充代码实现项目数据文件和翻译数据文件的请求功能
$.get({url: './js/all-data.json'}).then(res => {
  allData = res
  loading(allData, num)   //初始加载数据
})
$.get({url: './js/translation.json'}).then(res => {
  translation = res
})
// TODO-END

// TODO: 请修改以下代码实现项目数据展示的功能
function loading(data, num) {
  $("ul > li").remove() //对已有的项目置空
  data.forEach((item, index) => { //每次加载num个项目,其中对描述(中文或英文)做出处理
    if(index < num) {  //需要展示的项目数组
      const element = { 
        icon: item.icon,
        description: currLang == "zh-cn" ? item.descriptionCN : item.descriptionEN,
        name: item.name,
        stars: item.stars,
        tags: item.tags,
      };
      // 添加至页面的项目列表中,查看页面可以看到有一行 bun 的项目数据
      $(".list > ul").append(createProjectItem(element));
    }
  })
}
// TODO-END

//点击更多
$(".load-more").click(() => {
  num += 15     //数量加15
  loading(allData, num)   //调用loading函数
  document.querySelector('.load-more').style.display = "none"
})

// 用户点击切换语言的回调
$(".lang").click(() => {
  // 切换页面文字的中英文
  if (currLang === "en") {
    $(".lang").text("English");
    currLang = "zh-cn";
  } else {
    $(".lang").text("中文");
    currLang = "en";
  }
  $("body")
    .find("*")
    .each(function () {
      const text = $(this).text().trim();
      if (translation[text]) {
        $(this).text(translation[text]);
      }
    });
  // TODO: 请在此补充代码实现项目描述的语言切换
  loading(allData, num)   //调用loading函数重新加载
});

知识点:

1.元素移除

element.remove() //删除一个子节点

parent.removeChild(child) //删除一个子节点并返回删除的节点。

2.元素添加

element.append() //添加多个节点,没有返回值

parent.appendChild(child) //追加单个节点,返回追加的 Node 节点

3.子元素选择(.list > ul) //.list类名下的ul标签元素

4.请求ajax.get({url: '...'}).then(res => { ...})

相关推荐
半世轮回半世寻3 分钟前
这 5 个 Elements 小技巧,真的能提高调试效率
前端·浏览器
kyriewen4 分钟前
for...of 的秘密:迭代器与可迭代对象,你也能创造“可循环”的东西
前端·javascript·面试
SuperEugene5 分钟前
前端 Git 协作规范实战:commit message + 分支管理 + 合并流程,告别冲突与混乱|工程化与协作规范篇
前端·javascript·vue.js·git·前端框架
泯仲6 分钟前
Zustand 状态管理实战详解:轻量高效的React状态方案
前端·javascript·react.js
Arthur14726122865476 分钟前
useTemplateRef 详解
前端·vue.js
张一凡937 分钟前
做了一个AI聊天应用后,我决定试试这个状态管理库
前端·javascript·react.js
早點睡39010 分钟前
ReactNative项目OpenHarmony三方库集成实战:react-native-confirmation-code-field
javascript·react native·react.js
竹林81814 分钟前
从轮询到监听:我在NFT铸造项目中优化合约事件订阅的完整踩坑记录
前端·javascript
luckyCover14 分钟前
TypeScript 学习系列(初):充分认识 TypeScript
前端
wangfpp28 分钟前
产品:这个文字颜色能不能根据背景图自动换?
前端·面试·产品