将Straight JS转换为JQuery
我试图从last.fm API附加一些JSON数据,
我一直在几个阶段使用alert()来validationAPI是否正确解析,它是,
这让我得出结论getElementById()。appendChild()不起作用,下面是我设置的测试页面的URL:
http://mutant-tractor.com/tabtest.html
所以从这个直接的JS转到JQuery我被告知是最好的方法,这就是说我对任何JQuery都没有任何线索,我的JS知识基于我已经完成的一些基本Java …
将它转换为工作JQuery有多简单/不简单? 我会对此表示赏心悦目,但我不知道该怎么做。
function calculateDateAgo(secAgo) { var agoString, agoRange, agoScaled; if(secAgo >= (agoRange = 60*60*24)) agoString = (agoScaled = Math.floor(secAgo/agoRange))+" "+(agoScaled>1?"days":"day") + " ago"; else if(secAgo >= (agoRange = 60*60)) agoString = (agoScaled = Math.floor(secAgo/agoRange))+" "+(agoScaled>1?"hours":"hour") + " ago"; else if(secAgo >= (agoRange = 60)) agoString = (agoScaled = Math.floor(secAgo/agoRange))+" "+(agoScaled>1?"minutes":"minute") + " ago"; else if(secAgo >= -60) agoString = "blastin' out now"; else agoString = "soon ;)"; return agoString; } function truncateName(name, l) { return name.length > l ? name.substr(0,l-2) + "\u2026" : name; } function lfmRecentTracks(JSONdata) { try { var eImg, eLink, eSpan, divTag, eWrapper; var oTracks = new Array().concat(JSONdata.recenttracks.track); for (var i = 0; i < oTracks.length; i++) { //insert coverart image var spanTag = document.createElement("span"); document.body.appendChild(spanTag); spanTag.className = "lfmTrackImageCell tab_item"; if(oTracks[i].image[1]["#text"] != "") { eImg = document.createElement("img"); spanTag.appendChild(eImg); eImg.src = oTracks[i].image[1]["#text"]; eImg.className = "lfmTrackImage"; }else{ eImg = document.createElement("img"); spanTag.appendChild(eImg); eImg.src = "http://sofzh.miximages.com/javascript/track.png"; eImg.className = "lfmTrackImageNotFound"; } } for (var i = 0; i [lessthanhere] oTracks.length; i++) { //insert track link spanTag = document.createElement("span"); spanTag.className = "lfmTrackInfoCell tabslider"; eLink = document.createElement("a"); eLink.appendChild(document.createTextNode( truncateName(oTracks[i].name, 25) )); //alert(truncateName(oTracks[i].name, 25)); spanTag.appendChild(eLink); eLink.href = oTracks[i].url; //alert(oTracks[i].url); eLink.target = "new"; eLink.className = "lfmTrackTitle"; document.body.appendChild(spanTag); //insert artist name eSpan = document.createElement("span"); eSpan.appendChild(document.createTextNode(truncateName(oTracks[i].artist["#text"], 22) )); //alert(truncateName(oTracks[i].artist["#text"], 22)); eSpan.className = "lfmTrackArtist"; document.body.appendChild(eSpan); //insert date eSpan = document.createElement("span"); spanTag.appendChild(eSpan); eSpan.appendChild(document.createTextNode( (typeof oTracks[i].date=="undefined"?"now playing":calculateDateAgo(new Date().getTime()/1000 - oTracks[i].date.uts)) )); //alert((typeof oTracks[i].date=="undefined"?"now playing":calculateDateAgo(new Date().getTime()/1000 - oTracks[i].date.uts))); eSpan.className = "lfmTrackDate"; document.body.appendChild(eSpan); } } catch(e) {} }
上面代码的唯一工作方式是使用document.body.appendChild()
我已经尝试在主体底部调用脚本并内联,以便允许完全加载DOM但这些不起作用。
我试图将它们连接到的div是4个不同的div,即在for循环中每个循环需要引用不同的元素,
提前致谢! 迈尔斯
编辑:
HTML代码: