Följande script genererar i alert(html) en listkod är okay med ul-,ol- och li-taggar, dvs. en lista i två nivåer. Men i webbläsaren syns endast den första nivån. Hur kan det komma sig? Vad kan jag göra för att listan ska visas i sin helhet?
function addScriptTag(url, scriptDiv) { if (scriptDiv.hasChildNodes()) { scriptDiv.removeChild(scriptDiv.firstChild) };
var scriptElement = document.createElement('script'); scriptElement.setAttribute('src', url); scriptDiv.appendChild(scriptElement); }
function fetchDelicious(json) { var html = ""; // skapar variablen html var root = document.createElement("ul"); // skapar ul-tagg att lägga i varibeln root // går igenom alla länkar som json hämtar upp och befolkar listan for(var i = 0; i < json.length; i++) { var uri = json[i].u; var description = json[i].d; var tags = json[i].t; var time = json[i].dt; var author = json[i].a; var li = document.createElement("li"); // skapar li-tagg och lägger den i variabeln li li.appendChild(createAnchor(uri, description)); // skapar länkar med funktionen createAnchor och lägger dem i li-taggen root.appendChild(li); // lägger li-taggarna i ul-taggen, dvs. variavlen root var visaHtml = "<li><a href=\":u\">:d</a>:t</li>".replace(":u", uri).replace(":d", description); // li-taggarna med länkar läggs i variabeln visaHtml var tagHtml = ""; // skapar en ny variabel tagHtml för att härbärgera taggarna/bokmärkena till respektive länk // går igenom alla taggar/bokmärken och befolkar nivå-två-listan for(var n = 0; n < tags.length; n++) { tagHtml += "<li><a href=\"http://delicious.com/:u\">:d</a></li>".replace(":u", [author,tags[n]].join("/")).replace(":d", tags[n]); } tagHtml = "<ol>" + tagHtml + "</ol>"; // ser till att tagHtml omges av ul-taggar dvs. skapar en lista i listan html = html + visaHtml.replace(":t", tagHtml); // listan skapas med li-taggar som innehåller ny ul-lista med taggar/bokmärken } html='<ul>' + html + tagHtml + "</ul>"; document.getElementById(config.deliciousTarget).appendChild(root); alert(html); }
function createAnchor(uri, description) { var anchor = document.createElement("a"); anchor.appendChild(document.createTextNode(description)); anchor.setAttribute("href", uri); return anchor; }
Postat av nilla (83.185.82.233) den 22 Juni, 2010 kl 05:38:07.