修改页面加载后创建的dom元素的html

时间:2013-11-02 01:03:01

标签: javascript jquery dom

我有两个单独的AJAX调用。一个从txt文件中获取项目列表并从中创建HTML表格,另一个与数据库对话以查找每个项目的成本,然后在每个项目的相应表格单元格中列出(我知道这可能听起来像一个奇怪的方法,但在我们的情况下它是一个很好的选择......)。

问题在于,在页面加载后创建表(或者确切地说,创建了表的行)后,价格没有写入表中。我不知道如何解决这个问题。

$(document).ready(function() {
    makeItemTable();
    listPrices();
    ... 
});

function makeItemTable() {
    $.ajax({
        url: 'products.php',
        type: 'GET'
        })
    .done(function(response) {
        $('.price-table > tbody').html(response); 
        })
}

function listPrices() {
    .ajax({
        url: 'prices.php',
        type: 'GET'
}) 
    .done(function(response) {
          priceData = $.parseJSON(response);
          $('.price-table tr').each(function() {
          var item = $(this).find('td:nth-child(1)').text();
          if (priceData[item]) {
               var price = priceData[item];
               $(this).find('td:nth-child(2)').text(price);
         }       
      })
    }

1 个答案:

答案 0 :(得分:0)

你可以尝试

  1. 使用setTimeout检查'products.php'的请求执行回调完成(请求'price.php'的内部回调)

  2. 另一种方式

    var jqxhr1 = $.ajax("products.php");
    var jqxhr2 = $.ajax("prices.php");
    $.when(jqxhr1, jqxhr2).done(function(jqxhr1, jqxhr2) {
     // Handle both XHR objects
      alert("all complete");      
    });
    
  3. 在'products.php'的回调请求中调用函数listPrices()

  4. 希望能提供帮助