如何在他的点击中创建元素和放置参数

时间:2018-04-16 09:52:42

标签: javascript html parameter-passing javascript-objects

我正在构建一个表单页面,每个人都可以创建自己的表单,我正在尝试构建一个选择器问题。我有这样的代码:

            Q.push({
                text: document.createElement("h3"),
                divQ: document.createElement("div"),
                divO: document.createElement("div"),
                chooserButton: document.createElement("button"),
                optionNum: 0
            });
            //var text = document.createElement("h3");
            Q[qNum - 1].text.innerHTML = "question " + qNum + " - " + kind;
            document.getElementById("question" + (qNum - 1)).appendChild(Q[qNum - 1].text);
            //var chooserButton = document.createElement("button");
            Q[qNum - 1].chooserButton.innerHTML = "add option";
            Q[qNum - 1].chooserButton.className = "smallB";
            Q[qNum - 1].chooserButton.type = "button";
            Q[qNum - 1].optionNum = 0;
            var g = "text!";
            Q[qNum - 1].chooserButton.onclick = h.bind(o);
            Q[qNum - 1].text.appendChild(Q[qNum - 1].chooserButton);//need to fix the div of the options
            //var divO = document.createElement("div");
            //var divQ = document.createElement("div");
            Q[qNum - 1].divO.id = "O" + qNum + Q[qNum - 1].optionNum[qNum];
            Q[qNum - 1].divQ.id = "question" + qNum;
            Q[qNum - 1].text.appendChild(Q[qNum - 1].divO);
            Q[qNum - 1].text.appendChild(Q[qNum - 1].divQ);
            Q[qNum - 1].optionNum++;
        }

        qNum++;



    function h(g) { alert("hello" + g);}

我怎样才能获得g?

这个h函数只是我想要做的一个例子,但是如果你能修复它我将能够修复真正的函数,我不想显示它,因为它有它的自己的问题

1 个答案:

答案 0 :(得分:0)

您可以在jquery中使用数据属性。

如下所示:

Q.push({
            text: document.createElement("h3"),
            divQ: document.createElement("div"),
            divO: document.createElement("div"),
            chooserButton: document.createElement("button"),
            optionNum: 0
        });
        //var text = document.createElement("h3");
        Q[qNum - 1].text.innerHTML = "question " + qNum + " - " + kind;
        document.getElementById("question" + (qNum - 1)).appendChild(Q[qNum - 1].text);
        //var chooserButton = document.createElement("button");
        Q[qNum - 1].chooserButton.innerHTML = "add option";
        Q[qNum - 1].chooserButton.className = "smallB";
        Q[qNum - 1].chooserButton.type = "button";
        Q[qNum - 1].optionNum = 0;
        var g = "text!";
        Q[qNum - 1].data("g", g); //Store the data under the key 'g'
        Q[qNum - 1].chooserButton.onclick = h.bind(o);
        Q[qNum - 1].text.appendChild(Q[qNum - 1].chooserButton);//need to fix the div of the options
        //var divO = document.createElement("div");
        //var divQ = document.createElement("div");
        Q[qNum - 1].divO.id = "O" + qNum + Q[qNum - 1].optionNum[qNum];
        Q[qNum - 1].divQ.id = "question" + qNum;
        Q[qNum - 1].text.appendChild(Q[qNum - 1].divO);
        Q[qNum - 1].text.appendChild(Q[qNum - 1].divQ);
        Q[qNum - 1].optionNum++;
    }

    qNum++;



function h(g) { alert("hello" + $(this).data("g")) ;} //retrieve the data 'g'