Frage

Ich bin mit jQuery 1.3.2, und ich versuche, einige Elemente in einem SVG-DOM-Elemente zu wählen.

$('svg > defs > lineargradient')

Doch aus irgendeinem Grund es nicht wählen, ich weiß, dass ich andere Elemente in der Element zugreifen können, da ich erfolgreich eine $ abgerufen haben ( „svg> rect“).

Mein SVG DOM sieht wie folgt aus:

<svg width="975" height="385">
    <defs>
       <lineargradient id="raphael-gradient-0" x1="1.000" y1="1.000" x2="0.000" y2="0.000">
          <stop offset="0%" stop-color="#242b62"/><stop offset="9.090909090909092%" stop-color="#174a88"/>
          <stop offset="18.181818181818183%" stop-color="#0e60a3"/><stop offset="27.272727272727273%" stop-color="#0b66ab"/>
          <stop offset="36.36363636363637%" stop-color="#0870b7"/>
       ...
       </lineargradient>
       <lineargradient id="raphael-gradient-1" x1="1.000" y1="1.000" x2="0.000" y2="0.000">...</lineargradient>

    </defs>
    <circle cx="50" cy="40" r="10" fill="#ff0000" stroke="#000" transform=""/>
    <rect x="0" y="0" width="975" height="385" fill="url(#raphael-gradient-1)" stroke="none" transform="" style="opacity: 1;" opacity="1" fill-opacity="1"/>
</svg>

Gibt es einen Grund, warum jQuery 1.3.2 nicht die Elemente wären in der Lage zu wählen?

War es hilfreich?

Lösung

alert($('svg lineargradient').length);

Working Demo

EDIT:

Es scheint, dass der > sofortiges Kind Ausdruck funktioniert nicht, aber wenn Sie einen Selektor, ohne dass dies angeben (wenn möglich), ist es in Firefox (aber nicht IE). Die folgende funktioniert in IE jedoch (getestet in IE7)

alert($('lineargradient').length);

offensichtlich, dies wird die Auswahl der <lineargradient> Elemente, die Sie auf einer Seite wollen etwas härter, aber Befehle wie slice() und eq() ermöglichen es Ihnen, die sie von Position in dem umschlossenen Satz zu erhalten.

Schreiben Sie Ihre eigenen Filter für die Sizzle Selektor-Engine wollen die Ergebnisse möglicherweise ergeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top