以下是我的HTML结构:
<table id="items" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<td> </td>
<td>Name</td>
<td>Description</td>
<td>Location</td>
</tr>
<tr>
<td>
<button type="button" class="btn btn-default btn-lg">
<span class="glyphicon glyphicon-plus"></span>
</button>
</td>
<td><input type="text" id="addName"></td>
<td><input type="text" id="addDescription"></td>
<td></td>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
</tfoot>
</table>这是我的jQuery代码:
function getTable(){
var args = new Object();
args.op = "getTable";
$.post("./service.php", args , function(data)
{
var dataObj = JSON.parse(data);
for(var i = 0; i<dataObj.length; i++){
$('table#items tbody').append("<tr class=\"items_tr\" id=\"item"+dataObj[i].sn+"\"><td>"+dataObj[i].sn+"</td><td>"+dataObj[i].name+"</td><td>"+dataObj[i].description+"</td><td>"+dataObj[i].belonged+"</td></tr>");
}
});
}
getTable();
$('tbody').children("tr").hide();
$("tbody tr").hide();
$("tr.items_tr").hide();最后3条语句根本不起作用。
无法选择已创建的s。
为什么和如何选择他们?
$("tr").hide();这个人只藏在里面,已经被创造的东西。
更多的问题-- .each()函数如何?
我想在每个td标记上绑定一个单击事件,但是我再次失败了。如何迭代所有新添加的s?
发布于 2014-08-13 15:46:02
要使最后三个语句工作,元素必须exist。在Ajax响应接收到Ajax之前,您正在执行这些方法。在添加元素(即循环之后)之后,将调用移动到$.get回调中。
某种程度上是相关的(因为它们解释了异步东西是如何工作的):
发布于 2014-08-13 16:00:45
如果试图在事件中隐藏这些元素,请将它们添加到事件处理程序中,例如:
$(document).ready( function () {
getTable();
$(element).on('click', function () {
$('tbody').children("tr").hide();
$("tbody tr").hide();
$("tr.items_tr").hide();
});
)};如果在调用getTable函数之后试图隐藏这些元素,那么将这3个函数添加到$.post成功函数中
代码应该如下所示:
function getTable(){
var args = new Object();
args.op = "getTable";
$.post("./service.php", args , function(data)
{
var dataObj = JSON.parse(data);
for(var i = 0; i<dataObj.length; i++){
$('table#items tbody').append("<tr class=\"items_tr\" id=\"item"+dataObj[i].sn+"\"><td>"+dataObj[i].sn+"</td><td>"+dataObj[i].name+"</td><td>"+dataObj[i].description+"</td><td>"+dataObj[i].belonged+"</td></tr>");
}
$('tbody').children("tr").hide();
$("tbody tr").hide();
$("tr.items_tr").hide();
});
}
getTable();发布于 2014-08-13 16:23:52
嗨,jquery在document.ready上绑定事件,如果有元素是在document.ready之后创建的,那么需要使用jquery的.bind()函数为这些事件注册这些元素。但是,首先要确保注销所有附加的元素。使用unbind();
引用绑定和取消绑定函数。
https://stackoverflow.com/questions/25290562
复制相似问题