基本上我正在尝试调用一个函数getTableData
来加载一个表并将其放在div
tableContents
内。
然后我要做的是从函数生成的每个th
中获取id值。该表加载了正确的数据,但id值不提醒。我甚至在加载后立即发出警报,没有任何东西弹出......
$(document).ready(function () {
$('.tableNames').live('click', function (event) {
$('#tableContents').load(getDBData('getTableData', '', $(this).text()), function () {
//alert('here');
$('#tableData th').each(function () {
var id = $(this).attr("id");
// compare id to what you want
alert(id);
});
});
});
});
我做错了什么?
<table id='tableData'>
<tr class='tableHeader'>
<th>Modified</th>
<th id='col1'>col1</th>
<th id='col2'>col2</th>
<th id='col3'>col3</th>
<th id='col4'>col4</th>
<th id='col5'>col5</th>
<th id='col6'>col6</th>
<th id='col7'>col7</th>
<th id='col8'>col8</th>
<th id='col9'>col9</th>
</tr>...
function getDBData(type, dbName, tableName) {
$.ajax({
type: "GET",
url: "ajaxDBReturn.asp?type="+ type + "&dbName=" + dbName + "&tableName=" + tableName,
contentType: "application/json; charset=utf-8",
success: function (result) {
if(type == "getTables")
{
//result = "<table id='tableList'>" + result + "</table>";
($("#tableList").html(result));
} else if (type == "getTableData") {
($("#tableContents").html(result));
}else if (type == "getTableRelationship"){
result = "<table id='listTableBody'>" + result + "</table>";
}
}
});
}
答案 0 :(得分:4)
据我快速阅读this。您的.load()
函数应该获得url
而不是完整的数据。如果这样做,那么可能导致没有实际添加到您的数据,因为load()
方法如果没有获取带有url的字符串,则不会加载任何内容。
如果getDBData自己添加,那么就没有succes
。您应该将您的succes函数改为getDBData,并在构建完表后调用该函数。
如果是这种情况,我建议像这样简单的全局函数调用:
$(document).ready(function ()
{
$('.tableNames').live('click', function (event)
{
// here is the change
// do you really need to call $('#tableContents')?
// you are probably also doing that in the function itself.
// also give your success function to your home-made function
getDBData('getTableData', '', $(this).text(), function()
{
$('#tableData th').each(function ()
{
var id = $(this).attr("id");
// compare id to what you want
alert(id);
});
});
});
});
答案 1 :(得分:0)
如果页面呈现时#tableData
不存在,或者当页面呈现时它存在但没有任何th
元素,那么each
函数将没有任何内容迭代。如果在加载数据时创建或修改了#tableData
,那么您需要使用delegate
将函数绑定到它。