【发布时间】:2014-10-22 11:49:12
【问题描述】:
我有以下问题希望得到一些帮助。 有一个组合框(选择),我在其中选择一个项目,然后我从 php 中取回一个动态表。该表包含示例名称。名字、姓氏和 ID(隐藏)。当我点击表格时,我得到所选行的 ID 值。到目前为止,它工作正常。事件不想先触发的问题。之后它工作正常,但我首先需要它,因为我有一个自动点击第一行的功能,但这在我解决这个问题之前不起作用。我编写了一个代码,它适用于 html 表。但不是与动态的。请帮忙。
这里的代码可以在动态表中正常工作,但在第二次点击之后:
function nametableclick() {
var rows = document.getElementById("nametable").rows;
for(var i = 0; i < rows.length; i++)
{
rows[i].onclick = function()
{
data=(this.cells[3].innerHTML);
var data = data;
$.ajax({
type: "POST",
url: "list.php",
data: "data="+data,
Type: "json",
success: function(msg) {
msg = JSON.parse(msg);
$("#dob").html(msg.dob);
$("#age").html(msg.age);
$("#sex").html(msg.sex);
}
});
};
};
};
这里的代码运行良好,但仅适用于 html 表: (其实是一样的,不过我用的是onload)
onload = function() {
var rows = document.getElementById("nametable").rows;
for(var i = 0; i < rows.length; i++)
{
rows[i].onclick = function()
{
data=(this.cells[3].innerHTML);
var data = data;
$.ajax({
type: "POST",
url: "list.php",
data: "data="+data,
Type: "json",
success: function(msg) {
msg = JSON.parse(msg);
$("#dob").html(msg.dob);
$("#age").html(msg.age);
$("#sex").html(msg.sex);
}
});
};
};
$("#nametable tr:eq(0) td:first-child").click();
};
当我对动态表使用 onload 函数时,它根本不起作用。 感谢您提前提供任何帮助。
【问题讨论】:
-
您可以发Fiddel 以便更好地理解吗?
-
如果你删除
Type属性并让服务器返回application/json(或使用dataType: 'json')那么你不需要自己解析响应,jQuery会为你做。 -
如果您有
$.ajax,那么强制循环遍历getElementById(...).rows的要求是什么?使用 jQuery 链:$('#nametable tr').on('click', ...)
标签: javascript html ajax