用户讨论: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)