2009-05-14 3 views
-1

Ich verwende selectorgadget, um mir zu helfen, Elemente auf dem Dokument auszuwählen. Aber wenn ich es auf jQuery verwendete, funktioniert es nicht. Der N-Kind-Selektor scheint nicht für mich zu arbeiten.Ich habe ein Problem bei der Auswahl eines Elements in jQuery

<div id = "wrap"> 
<div class = "book"> 
    <div class = "chapter"> 
     <p class = "text"> 
      <table> 
       <tbody> 
        <tr> 
         <td>Title</td> 
         <td> 
          <b>jQuery</b> 
         </td> 
        </tr> 
       </tbody> 
      </table> 
     <p> 
    </div> 
</div> 
</div> 

Das HTML ist oben. Es gibt viele Buchklassen. Der Div-Wrapper ist der Wrapper, der sie alle umschließt. Selector Gadget sagte, dass, wenn ich folgendes benutze:

$("#wrap tr:nth-child(1) b") Es sollte das TD-Element mit dem <b> Tag darin auswählen. Daher sollte "jQuery" ausgewählt werden.

Ich habe es versucht, aber es hat nicht funktioniert. Wenn ich es versuchte:

var query = $("#wrap tr:nth-child(1) b").text(); 
alert(query); 

Der Browser sendet eine Warnung ohne Text. Und wenn ich es versuchte:

var query = $("#wrap tr:nth-child(1) b").html(); 
alert(query); 

Der Browser sendet eine NULL-Warnung.

Was ist los?

+0

könnten Sie das Markup anzeigen? –

+0

Ja, ich habe vergessen, die Markup zu enthalten .. Entschuldigung! Danke –

+0

Ich habe gerade versucht, Ihren Code und es hat gut für mich funktioniert ... –

Antwort

0

haben Sie

versucht

geändert, ich zuerst die tr nur knapp sein Ziel fest: n-ter Kind, gibt es keine tr in der Tabelle 1 Kind ist, aber es gibt einen td bei Index 1

var query = $(".text td:nth-child(1) b").html(); 
alert(query); 
+0

Ja, es gibt null zurück. Immer wenn ich das N-Kind benutze. Ich bekomme jedes Mal den Nullwert. Ich benutze einen Joystick mit joQuery. Vielleicht kann ich nth-child nicht in greasemonkey benutzen? –

+0

John kann ich .text tr b. Aber ich möchte wissen, warum ich das N-Kind nicht benutzen kann. Weil ich andere kompliziertere Elemente in dem Dokument auswählen muss, die die Verwendung von nth-child erfordern. –

+0

statt tr verwenden td –

0

In testen Sie Ihre Probe in Firefox 3 und IE8, ich in der Lage war, den Text, den Sie Ihren Selektor nach einer zwicken erwartet zurück - ich habe Element eine ID von „wrap“ auf den Tisch:

<table id="wrap"> 

Sobald das hinzugefügt wurde in deinem Selektor schien gut zu funktionieren. Gibt es eine bestimmte Plattform, mit der Sie Probleme haben?

+0

Ich benutze Greasemonkey. Es ist nicht mein HTML-Dokument. Vielleicht muss ich der ganzen Tabelle eine Klasse hinzufügen? –

0

Ich habe gerade Ihren Beispielcode ausprobiert und es hat sofort funktioniert. Welche Version von jQuery verwenden Sie? Es funktioniert in 1.3.2

Hier ist das Arbeitsbeispiel: http://jsbin.com/uzuzu/edit

+0

Ich benutze 1.3.2. Hmm, ich denke das Problem ist in Greasemonkey .. Ich benutze Greasemonkey mit jQuery. –

+0

Wie verweisen Sie auf jQuery? Verwenden Sie unsafeWindow.jQuery? – nickf

2

ich dies mit FF habe versucht, 3.0.10, jQuery 1.3.2, Greasemonkey 0.8.2

var query = $("#wrap tr:nth-child(2) b").text(); 
returns "jQuery" 

die 2 in nth-child() macht den Trick !! Index für nth-child startet von 1 nicht 0

0

Sie brauchen nth-child (2),: nth-child (1) wählt den Titel aus. Denken Sie daran: eq ist 0-basiert, während: nth-child() 1-basiert ist. Verwirrend!

Verwandte Themen