[AJAX][JS] Javascript functie toepassen op nieuwe content

Pagina: 1
Acties:

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 13:05
Een zoekfunctie op mn website werkt met behulp van ajax,
(dit kun je testen op http://www.partypassion.net/new/Naar_Huis/.

De content die terug wordt gegeven daar wil ik graag met behulp van javascript een aanpassing op doen. (zebra-stripes, H1-tags vervangen door plaatjes).

De javascript funties om deze content aan te passen worden wel uitgevoerd, maar de id's en classes in de door de zoekfunctie teruggegeven html worden niet gevonden.

Kan iemand mij uitleggen waarom dit mis gaat? En evt ook hoe ik het kan oplossen?

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Post 'ns zo'n JavaScript functie die wel uitgevoerd wordt maar niet lijkt te werken. En wellicht ook de context waarin de functie wordt aangeroepen.

Zo is het een beetje koffiedik kijken. ;)

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 13:05
functie bij onkeyup bij searchveld.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function xmlsearch(value,pid,id)
    {
    if (value.length > 0)
        {
        divid = "content";
        loadajaxdata(value,"search");
        stripe();
        }
    else
        {
        divid = "ajax";
        document.getElementById("content").innerHTML = contentdiv;
        }
    }


hieronder de stripe functie die op regel 7 wordt aangeroepen.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var stripe = function()
    {
    var table = document.getElementsByClassName("list");
// een alert(table[0]) geeft undefined.
    if (table[0])
        {
        var tbodies = table[0].getElementsByTagName("tbody");
        var even = true;
        var trs = table[0].getElementsByTagName("tr");
        
        for (var i = 0; i < trs.length; i++)
            {
            if (trs[i].style.display !== "none")
                {
                trs[i].onmouseover=function()
                    {
                    this.className += " ruled"; return false
                    }
                trs[i].onmouseout=function()
                    {
                    this.className = this.className.replace("ruled", ""); return false
                    }
                if(even && !trs[i].className)
                    {
                    trs[i].className += " even";
                    }
                even = !even;
                }
            }
        }
..... hier nog wat bij wat niet relevant is.

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 13:05
Probleem opgelost.
Ik riep de functie aan voordat dat html geparsed was. Ik heb het zo verandert dat de functie pas aangeroepen wordt als alle ajax data is geladen en toen werkte het.