首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SVGweb中使用jQuery选择器

如何在SVGweb中使用jQuery选择器
EN

Stack Overflow用户
提问于 2011-11-10 23:40:48
回答 1查看 1.1K关注 0票数 1

我想在SVG上使用jQuery选择器。在具有本地SVG支持的浏览器上,所有选择器都可以正常工作。但在浏览器上(实际上,我只测试了ie8),SVGweb使用的是Flash渲染器,只有一些选择器可以工作,例如:

代码语言:javascript
复制
$('#id')             /* id selectors works*/
$('#id #another-id') 
$('*')                /* universal selector works */  

一些选择器将不起作用:

代码语言:javascript
复制
$('path')            /* type selectors don't work */
$('.region')         /* class selectors don't work */

注意:我还没有测试其他选择器。

我的问题是:如何让它们工作?

注意:如果这是不可能的,一个简短的解释(也许是这个限制的某种变通方法)可以获得复选标记。

EN

回答 1

Stack Overflow用户

发布于 2012-02-23 06:54:45

(使用Firefox)

我使用embed-in-an-<object>方法来实现跨浏览器兼容性:

代码语言:javascript
复制
<!--[if !IE]>-->
  <object data="path-to.svg" type="image/svg+xml" id="object-id">
  </object>
<!--<![endif]-->
<!--[if lt IE 9]>
  <object src="path-to.svg" classid="image/svg+xml" id="object-id">
  </object>
<![endif]-->
<!--[if gte IE 9]>
  <object data="path-to.svg" type="image/svg+xml" id="object-id">
  </object>
<![endif]-->

...then使用<object>节点的contentDocument告诉jQuery()这个新的DOM...

代码语言:javascript
复制
var svgdoc = $('object-id').get(0).contentDocument;
var $svg = $(svgdoc).children();

...and你应该能够从$svg中学到东西

代码语言:javascript
复制
var $paths = $('path',$svg);
$svg.find('rect').attr('fill','blue');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8082131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档