繁体   English   中英

Onclick无法正常运作(Javascript和Dom)

[英]Onclick not working (Javascript and Dom)

我正在尝试使最后一个功能起作用,但事实并非如此。 我认为这与空白蜂阵列有关吗?

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;

我只需在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);
    }
}

如果您担心性能,那就不要。

cloneNode似乎不复制事件处理程序。 出于安全原因,可能是设计使然。 将事件处理程序附加到克隆的节点,而不是lank

var cloned = lank.cloneNode(true);
cloned.onclick = visaText;
document.getElementsByClassName("post")[i].appendChild(cloned);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM