jQuery no seleccione lineargradient objeto
-
22-07-2019 - |
Pregunta
Estoy usando jQuery 1.3.2, y estoy tratando de seleccionar algunos de los elementos en un svg elemento DOM.
$('svg > defs > lineargradient')
Sin embargo, por alguna razón, no se selecciona, sé que se puede acceder a otros elementos de la <svg> elemento ya he conseguido recuperar un $("svg > rect").
Mi SVG DOM se parece a esto:
<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>
¿Hay alguna razón por qué jQuery 1.3.2 no ser capaz de seleccionar el <lineargradient> elementos?
Solución
alert($('svg lineargradient').length);
EDITAR:
Parece que el >
inmediata hijo de expresión no funciona, pero si se especifica un selector sin esto (si es posible), es bien en Firefox (pero no IE).La siguiente no funciona en IE sin embargo (probado en IE7)
alert($('lineargradient').length);
obviamente, esta será la selección de la <lineargradient>
los elementos que desea en una página un poco más difícil, pero los comandos como slice()
y eq()
le permitirá llegar a ellos por la posición en el conjunto ajustado.
Escribir tus propios filtros para la Sizzle selector de motor puede producir los resultados que usted desea.