我正在动态添加元素:
$.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。
我有什么遗失的吗?
答案 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/