JQuery won't选择追加的隐藏元素

JQuery won't select appended hidden element

本文关键字:追加 隐藏 元素 选择 won JQuery      更新时间:2023-09-26

我正在动态添加元素:

$.ajax({
    type: "POST",
    url: url,
    success:function(data) {
        $('#trNew').before( data );
    }
});

data:

<tr id="val1">
    <td>...</td>
    <td><a id="e1" href="#" onclick="return editRow('e1')">Edit</a></td>
    <div class="hide" id="popup1">
        <input type="text">
        <button>Save</button>
    </div> 
</tr>

插入到适当的位置。然而,在editRow()(它被正确调用)当我尝试选择$("#popup18")$("#popup18:hidden")时,没有选择任何东西。document.getElementById("popup1")也返回undefined

我错过了什么吗?

据我所知,tr不支持divs作为子节点

http://www.w3.org/html/wg/drafts/html/master/tabular-data.html the-tr-element

零个或多个td、th和脚本支持元素

所以这基本上是无效的HTML -因此没有什么或一切可能工作-取决于今天的星星如何对齐

尝试更改html中的行,如下所示:

 <td><a id="e1" href="#" onclick="return editRow(this)">Edit</a></td>

我已经从editRow('e1')改变了editRow(this)。这将把锚元素作为对象传递。

并更改您的Html:

<tr id="val1">
    <td>...</td>
    <td><a id="e1" href="#" onclick="return editRow(this)">Edit</a>
        <div class="hide" id="popup1">
           <input type="text">
           <button>Save</button>
        </div> 
    </td>
</tr>

您可以在fiddle上尝试此工作http://jsfiddle.net/AmanVirdi/ELK8c/