我试图让最后一个功能起作用,但事实并非如此。我认为这与lank beeing一个阵列有关吗?
var lank = document.createElement("a"); //Skapa en länk som heter lank
lank.setAttribute("class", "visa");
lank.setAttribute("href", "#");
var lankTN = document.createTextNode("Läs mer"); // Skapa en textnod som heter lankTN
lank.appendChild(lankTN); //Sätt in lankTN i lank
window.onload = function uppstart(){
var texterna = document.getElementsByClassName("show");
for (var i = 0; i < texterna.length; i++) {
texterna[i].style.visibility = "hidden";
document.getElementsByClassName("post")[i].appendChild(lank.cloneNode(true));
}
}
function visaText(){
alert("Hej");
}
lank.onclick = visaText;
答案 0 :(得分:0)
我只需在for循环中创建lank
节点,然后在那里添加onclick。如果我们有一个小提琴并且看到你的HTML也会有所帮助,但我猜对了,我希望这就是你的意思:http://jsfiddle.net/yf9Wa/1/。
从小提琴中,这对你有用吗?
window.onload = function uppstart() {
var texterna = document.getElementsByClassName("show");
var posterna = document.getElementsByClassName("post");
for (var i = 0; i < texterna.length; i++) {
var lank = document.createElement("a"); //Skapa en länk som heter lank
lank.setAttribute("class", "visa");
lank.setAttribute("href", "#");
lank.setAttribute("id", "lank" + i);
var lankTN = document.createTextNode("Läs mer"); // Skapa en textnod som heter lankTN
lank.appendChild(lankTN); //Sätt in lankTN i lank
lank.onclick = function(){
alert("Hej, jag är: " + this.id);
};
texterna[i].style.visibility = "hidden";
posterna[i].appendChild(lank);
console.log(i);
}
}
如果您担心表现,请不要。
答案 1 :(得分:0)
cloneNode
似乎不会复制事件处理程序。出于安全考虑,可能是设计。将事件处理程序附加到克隆节点,而不是lank
。
var cloned = lank.cloneNode(true);
cloned.onclick = visaText;
document.getElementsByClassName("post")[i].appendChild(cloned);