如何使用Javascript来获取动态创建的窗口中的元素?

时间:2014-08-04 14:25:54

标签: javascript jquery html

我有一个HTML页面,当点击一个链接时会动态创建一个下拉窗口,如下面(编辑过的)javascript函数所示:

tbiObj._login = function (objEle) {
    var windowName = 'TBIOBJ_LOGIN';
    var tabObjLoginWindow = tbiObj.getWindow(windowName);

    //if tabObjLoginWindow doesn't exist then create it here (code excised)

    var windowDiv = tabObjLoginWindow.getWindowId('body');
    var windowHTML = $('LOGINDIALOG').innerHTML;
    $(windowDiv).innerHTML = windowHTML;
    tabObjLoginWindow.show('dropdown', objEle);
}

提供" innerHTML"的模板(LOGINDIALOG)。使用display:none:

在页面后面定义如下
<div id="LOGINDIALOG" style="display:none;">
    <div id="LOGIN.ERRORS" style="display:none; color:red;"></div>
    <table>
        <tr>
            <td class="GrBlue" style="white-space:nowrap;">User Name:</td>
            <td>
                <input class="GrBlueEdit" type="text" id="LOGIN.UNAME" / style="">
            </td>
        </tr>
        <tr>
            <td class="GrBlue" style="white-space:nowrap;">Password:</td>
            <td>
                <input autocomplete="off" class="GrBlueE" type="password" id="LOGIN.PWORD" / style="">
            </td>
        </tr>
    </table>

我需要更改一些属性并在下拉窗口中为元素添加处理程序。我一直在试验(我不是一个经验丰富的js或jquery编码器)并且在创建窗口和复制HTML之前尝试使用模板元素来更改它们。我只能改变&#34;类型&#34; LOGIN.UNAME和LOGIN.PWORD的属性,但不是其他(例如样式,类)的属性,也不能添加像onkeydown这样的事件处理程序,也不能更改值。我的想法是,我可能需要&#34;到达&#34;这些元素在被装入窗体之后,但我不知道如何。我可以显示函数中定义的变量windowHTML,但是它是。所以我的问题是:

1。为什么不可能通过js或jQuery(或者如果它就是我失败的地方)来更改元素LOGIN.UNAME的值,样式,类等和LOGIN.PWORD,为什么不能添加事件处理程序(例如onkeydown)?

2. 如何在创建窗口内容后访问窗口内容的DOM?

现在,很有可能,我甚至可能在提出这些问题时犯错,但我想解决这个问题。任何指向资源或提示的指针都将不胜感激。

0 个答案:

没有答案