JQuery不会选择附加的隐藏元素

时间:2014-07-25 11:50:02

标签: javascript jquery html

我正在动态添加元素:

$.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。

我有什么遗失的吗?

2 个答案:

答案 0 :(得分:5)

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

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

  

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

因此基本上无效的HTML - 因此没有任何东西或一切都可行 - 取决于今天的星星如何对齐

答案 1 :(得分:2)

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

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

我已从editRow(&#39; e1&#39;)更改了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>

您可以尝试使用小提琴http://jsfiddle.net/AmanVirdi/ELK8c/