编辑ajax加载的内容

时间:2015-07-01 14:44:45

标签: javascript jquery html ajax

我有一个从另一个页面加载表格的HTML。我已经让CSS正常工作了,但只有当我将表直接放在页面上时,我才能使用jQuery编辑表格。我猜测我的更改可能在加载之前运行了吗?我不知道..

我想告诉你,我不是一个自己的程序员,而是一个好奇的人。我已经四处寻找并找到了一些东西,但缺乏知识并没有让我实施它们。希望你能帮帮我。

我用来从其他页面读取数据的脚本(p1.html)

<script type="text/javascript">
    var TimerLoad, TimerChange;
    var MaxNum, Rafraichir, Changement, ClassementReduit, ClassementReduitXpremier;
    var UrlRefresh, UrlChange;
    Rafraichir = 30000;
    Changement = 150000;
    MaxNum = 1;
    ClassementReduit = 0;
    ClassementReduitXpremier = 10;

    function Load(url, target) {
        var xhr;
        var fct;
        if (UrlChange) url = UrlRefresh;
        else UrlRefresh = url;
        UrlChange = 0;
        if (TimerLoad) clearTimeout(TimerLoad);
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP")
        } catch (e) {
            try {
                xhr = new ActiveXObject("Microsoft.XMLHTTP")
            } catch (e2) {
                try {
                    xhr = new XMLHttpRequest
                } catch (e3) {
                    xhr = false
                }
            }
        }
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 && xhr.status == 200)
                if (ClassementReduit == 0) document.getElementById(target).innerHTML = xhr.responseText;
                else document.getElementById(target).innerHTML = ExtraireClassementReduit(xhr.responseText)
        };
        xhr.open("GET", url + "?r=" + Math.random(), true);
        xhr.send(null);
        fct = function() {
            Load(url, target)
        };
        TimerLoad = setTimeout(fct, Rafraichir)
    }

    function ExtraireClassementReduit(Texte) {
        var i, j, CompteurTD, CompteurTR;
        var ColPosition, ColNumero, ColNom, ColEcart1er;
        var Lignes;
        var NouveauTexte;
        CompteurTR = 0;
        ColPosition = -1;
        ColNumero = -1;
        ColNom = -1;
        ColEcart1er = -1;
        Texte = Texte.substring(Texte.indexOf("<tr"));
        Lignes = Texte.split("\r\n");
        NouveauTexte = '<table width="100%" cellpadding="0" cellspacing="0">';
        for (i = 0; i < Lignes.length; i++)
            if (Lignes[i].substring(0, 3) == "<tr") {
                NouveauTexte += Lignes[i];
                CompteurTD = 0
            } else if (Lignes[i].substring(0, 4) == "</tr") {
            CompteurTR++;
            if (CompteurTR == ClassementReduitXpremier + 1) break
        } else if (Lignes[i].substring(0, 3) == "<td") {
            if (CompteurTR == 0)
                if (Lignes[i].indexOf("\"Id_Position\"") != -1) {
                    ColPosition = CompteurTD;
                    NouveauTexte += Lignes[i].replace(/ width=".*"/i, "")
                } else if (Lignes[i].indexOf("\"Id_Numero\"") != -1) {
                ColNumero = CompteurTD;
                NouveauTexte += Lignes[i].replace(/ width=".*"/i, "")
            } else if (Lignes[i].indexOf("\"Id_Nom\"") != -1) {
                ColNom = CompteurTD;
                NouveauTexte += Lignes[i].replace(/ width=".*"/i, "")
            } else {
                if (Lignes[i].indexOf("\"Id_Ecart1er\"") != -1) {
                    ColEcart1er = CompteurTD;
                    NouveauTexte += Lignes[i].replace(/ width=".*"/i, "")
                }
            } else if (CompteurTD == ColPosition || CompteurTD == ColNumero || CompteurTD == ColNom || CompteurTD == ColEcart1er) NouveauTexte += Lignes[i];
            CompteurTD++
        }
        NouveauTexte += "</table>";
        return NouveauTexte
    }

    function Change() {
        var Num, Index;
        if (document.forms["Changement"].chkChangement.checked) {
            Index = UrlRefresh.indexOf(".");
            Num = parseInt(UrlRefresh.substring(1, Index)) + 1;
            if (Num > MaxNum) Num = 1;
            UrlRefresh = "p" + Num + ".html";
            UrlChange = 1;
            fct = function() {
                Change()
            };
            TimerChange = setTimeout(fct, Changement)
        } else if (TimerChange) clearTimeout(TimerChange)
    };
</script>

将表格加载到正文

$(document).ready(Load('p1.html', 'result'));

我需要在之后运行的代码(它可以直接在页面上使用表格,甚至可以在按钮上运行,但我无法在页面加载时运行)

function show_hide_column(col_id, do_show) {
  var stl;
  if (do_show) stl = 'block'
  else stl = 'none';

  var tbl = document.getElementsByTagName('table')[0];
  var index = document.getElementById(col_id).cellIndex;
  var rows = tbl.getElementsByTagName('tr');

  for (var row = 0; row < rows.length; row++) {
    var cels = rows[row].getElementsByTagName('td')
    cels[index].style.display = stl;
  }
}


function hide() {
  show_hide_column("Id_Position", false);
  show_hide_column("Id_Equipe", false);
  show_hide_column("Id_Vehicule", false);
}

1 个答案:

答案 0 :(得分:0)

我为前一个代码的每个阶段发出了一条console.log()消息,以便知道该表何时被添加到页面中,然后隐藏列。得到了它。