jQuery .jede Funktion ist in allen Browsern (funktioniert im ff, ie8, ie7 nicht)

Ich ve wurde Herumspielen mit dieser viel zu lange, und es geschafft, IE8 funktioniert, aber IE7 hat mich ratlos.

Ich habe eine Tabelle, und für jede Spalte, die ich versuche, zu extrahieren, eine Anzahl von divs. Ich bin nur extrahieren divs, die mit bestimmten Selektoren werden nicht alle divs in der Spalte.
Meine ursprüngliche jquery-Selektor wurde

jQuery('div.a1, div.a3, div.a4, div.a7','table#" +tableId+' td:nth-child('+columnNum+')').each(function(){ 
alert(jQuery(this).attr('id')); 
}); 

Diese hat Super funktioniert im FF, aber nicht auslösen .jede Funktion überhaupt im IE.

Nach Herumspielen, ein wenig, ich habe

jQuery('td:nth-child('+columnNum+') > div.a1, td:nth-child('+columnNum+') > div.a3, td:nth-child('+columnNum+') > div.a4,td:nth-child('+columnNum+') > div.a7', Tabelle#a+ " tableId).each(function(){ 
alert(jQuery (.attr('id')); 
}); 

Nicht so schön, aber funktioniert im IE8.
Ich hatte versucht, alle möglichen Kombinationen verwenden .eq(+'columnNum+'), aber nichts anderes war zu arbeiten.

Gehe ich jetzt und testen im IE7, und wieder die .jeder der nicht ausgelöst.

Was ist die schönste Art und Weise (und cross-browser-kompatibel) für die Arbeit mit dieser Art von .jedes element?

--------------neben--------------

Nach weiteren Tests und spielen, um mit Anregungen aus der DrJ und bdukes, ich habe festgestellt, dass in der Tabelle#'+tableId bricht die Funktion sowohl IE7&8.

Habe ich wieder zu meinem ursprünglichen code

jQuery('div.a1, div.a3, div.a4, div.a7','table#" +tableId+' td:nth-child('+columnNum+')').each(function(){ 
alert(jQuery(this).attr('id')); 
}); 

wie mir scheint, die meisten effiziente.
Wenn ich remove "Tisch#" +tableId, bekomme ich die korrekte Antwort in allen Browsern, außer, dass es nach addition der Ergebnisse aus allen Tabellen, und ich muss in der Lage sein, um nur die Ergebnisse aus einer Tabelle zu einer Zeit.
Ich habe auch versucht, "Tisch#" +tableId+'>td:nth-child('+columnNum+')').jeder, aber das funktioniert auch nicht.

Die erste Funktion, die ich verwendet habe, funktioniert einwandfrei im firefox.

----------------die html ausgewählt---------------------------
Die Tabellen werden dynamisch erstellt in javascript, also kann ich nicht wirklich kopieren und Vergangenheit, aber hier ist, wie die Ausgabe aussieht. Es endet auf der Suche ein bisschen wie ein gantt-Diagramm auf einen Tisch.

<table id="a1"> 
<tr> 
<th colspan="5"> 
Gruppe Name 
</th> 
</tr> 
<tr class="rowId1" > 
<td> 
<div class="a1" id="a43" style="margin-left:13px; width:60px" ></div> 
</td> 
<td> 
</td> 
<td> 
<div class="a3" id="a93" style="margin-left:4px; width: 80px" ></div> 
<div class="a2" id="a94" style="margin-left:4px; width: 30px" ></div> 
</td> 
<td> 
<div class="a1" id="a24" style="margin-left: 15px; width: 65px;" ></div> 
</td> 
<td> 
</td> 
</tr> 
</tr> 
<tr class="rowId1" > 
<td> 
<div class="a7" id="a24" style="margin-left:10px; width:60px" ></div> 
</td> 
<td> 
<div class="a2" id="a15" style="margin-left:14px; width: 22px" ></div> 
</td> 
<td> 
; 
<div class="a2" id="a105" style="margin-left: 8px; width: 50px" ></div> 
</td> 
<td> 
</td> 
<td> 
<div class="a4" id="a102" style="margin-left: 5px; width: 45px;" ></div> 
</td> 
</tr> 
</table> 
sind Sie sicher, es ist nicht, weil Sie fehlen 2 schließende Klammern (')') in Zeile 2? jQuery.each() funktioniert gut auf IE6/7 normal.
Dank DrJ Nein, das ist nicht das Problem. Das war nur ein Tippfehler.
Ich würde vermuten, dass es eher ein Problem mit dem Selektor als die each Funktion. Stellen Sie sicher, dass Sie tatsächlich auswählen, welche Sie erwarten, in jedem browser, brechen Sie jeden Abschnitt nach unten und sehen, wenn Sie herausfinden können, wo es immer die falschen Werte.
Ach ja, soweit ich mich erinnere, auf IE, wenn Sie Leerzeichen vor oder nach > in Selektoren funktioniert es nicht. Versuchen Sie es mit "td:nth-child('+columnNum+')>div.a3" statt.
Können wir finden Sie in der HTML wird versucht zu wählen?

InformationsquelleAutor pedalpete | 2010-02-02

Schreibe einen Kommentar