跳至內容

使用者討論:Shizhao/uptrends.js

頁面內容不支援其他語言。
維基百科,自由的百科全書

再重寫了一下[編輯]

if ($("div#uptrends").hasClass("uptrends")){
  (new mw.Api()).get({
    format: 'json',
    action: 'query',
    list: 'mostviewed',
    pvimlimit: 50,
  }).done(function (data) {
    var mainspace = data.query.mostviewed.filter(function (item) {
        return item.ns === 0
    })
    var popular10 = mainspace.slice(0, 10)
    var elements = popular10.map(function (item) {
      var a = document.createElement('a')
      a.href = mw.util.getUrl(item.title)
      a.title = item.title
      a.dataset.views = item.count
      a.innertext = item.title
      var li = document.createElement('li')
      li.appendChild(a)
      return li
    })

    var ul = document.createElement('ul')
    elements.forEach(function (li) {
      ul.appendChild(li)
    })

    // 一个个换什么的烦死了,直接从零造换 ul 好了
    var uptrends = document.getElementById('uptrends')
    var oldul = $(uptrends).find(ul)  // 听说要照顾没有 querySelector 的人
    if (oldul === null)
      uptrends.appendChild(ul)
    else
      uptrends.replaceChild(ul, oldul)
  })
}

這裡特地把 data 改成了 data-views。不然不清真。

理論上 JQuery 浪費那麼多次的結果一次次eq(i)挺浪費的。——Artoria2e5 討論要完整回覆請用ping 2017年4月4日 (二) 02:13 (UTC)[回覆]