在Javascript中处理动态制作的元素

时间:2014-04-27 14:23:17

标签: javascript button

有没有办法处理加载页面时动态生成的元素?

例如,我有一个代码。

function makeAFrame(index)
{
    var padding=document.createElement('p');
    var frameDiv=document.createElement('div');
    frameDiv.id="frame";
    frameDiv.className="frame";

    var placeButton=document.createElement('input');
    placeButton.id="bButton"+index;
    placeButton.className="bButton";
    placeButton.value="aaa";
    placeButton.type="button";

    var buyButton=document.createElement('input');
    buyButton.id="aButton"+index;
    buyButton.className="aButton";
    buyButton.value="Buy It Now";
    buyButton.type="button";

    var table=document.createElement('table');
    table.setAttribute('cellpadding','3');
    table.setAttribute('width','100%');

    var col1=["a", "b", "c","d","e:", "f"];

    var row;
    var text;
    var cell;
    var i=0;

    for(i=0;i<6;i++)
    {
        row = table.insertRow(i);

        text = document.createTextNode(col1[i]);
        cell = row.insertCell(0);
        cell.setAttribute('align','right');
        cell.setAttribute('width','30%');
        cell.appendChild(text);

        text = document.createTextNode(hey[index][i]);
        cell = row.insertCell(1);
        cell.setAttribute('align','left');
        cell.appendChild(text);
    }

    for(i=6;i<8;i++)
    {
        row = table.insertRow(i);

        text = document.createTextNode("");
        cell = row.insertCell(0);
        cell.setAttribute('align','right');
        cell.setAttribute('width','30%');
        cell.appendChild(text);

        if(i==7)
        {
            cell = row.insertCell(1);
            cell.setAttribute('align','left');
            cell.appendChild(placeButton);
            cell.appendChild(buyButton);
            break;
        }
        else if(i==6)
        text = document.createTextNode(remaining);
        cell = row.insertCell(1);
        cell.setAttribute('align','left');
        cell.appendChild(text);
    }

    var body=document.getElementById('body');
    frameDiv.appendChild(table);
     body.appendChild(frameDiv);
     body.appendChild(padding);
}

一旦运行了该功能,这意味着在页面中显示所有元素之后。我想要做的是当我点击'aButton0'(aButton + index)时出现一个输入框。我使用索引创建所有按钮代码,以便可以访问它们,但我不知道如何在页面中显示它们后进行访问。

1 个答案:

答案 0 :(得分:1)

为什么不在创建按钮时为按钮添加onclick处理程序,只需添加

  placeButton.setAttribute("onclick", "showPopUp();");

然后你可以对showPopUp函数中的特定按钮做出反应。