2009-06-12 8 views
0

Das ist peinlich, aber hier geht es. Hier ist die Seite, an der ich gerade arbeite: www.mchenry.edu/administration/BoardSchedule.aspWarum fügt jQuery kein neues HTML basierend auf Attributselektoren ein?

Ich benutze jQuery ver. 1.3.1 und ich lege Tigerstreifen auf den Tisch. Alles ist gut. Ich möchte jedoch eine FileInfo-Klasse nach allen PDF-Dateierweiterungen im Dokument einfügen, damit die Benutzer wissen, dass sie eine PDF-Datei auswählen. Hier ist mein kleines fileinfo.js jQuery Schnipsel:

$(function(){ 
    $('<span class="FileInfo"> PDF </span>').insertAfter('li a[href$=.pdf]'); 
}); 

Warum funktioniert es nicht? Ist es etwas Dummes? Dieser Ausschnitt funktioniert auf anderen Seiten, nur nicht hier. Was ist los?

Thnx.

Antwort

1

Sie suchen nach allen a Elemente unter einem LI Element, wenn man es auf die Links Ihrer Tabelle verwenden möchten, sollten Sie Ihre Wähler ändern:

$('td a[href$=.pdf]').after('<span class="FileInfo"> PDF </span>'); 
+0

Ich fühle mich wie ein Tölpel. Thnx. – Jesse

1

Ich denke, dass das, was Sie wollen, ist zu tun ...

$(function(){ 
    $('table a[href$=.pdf]').after('<span class="FileInfo">PDF</span>'); 
}); 

Btw, warum nicht nur CSS anstatt zu benutzen?

table .pdf:after, table [href$=.pdf]:after { 
    content: " PDF"; 
} 
+0

was ist der Unterschied in dieser und "einfügen"? Tun sie nicht beide dasselbe, außer der Selektor und die Inhaltspositionen sind vertauscht – TStamper

+0

yup ... "Diese Operation ist, im Wesentlichen, die Umkehrung der Ausführung eines regulären $ (A) .nach (B), stattdessen Wenn Sie B nach A einfügen, fügen Sie A nach B ein. " http://api.jquery.com/ – coma

Verwandte Themen