作者robinnpca (rob)
看板Ajax
标题[问题] [attribute=^value]无效有无替代的函数
时间Sat Nov 5 10:44:46 2011
PS:最新测试出来
竟然在firefox可以 但是却在opera中失效?..
但是opera对svg的支援较多..这!有解嘛?
还是只能期待jquey或opera的修正(我不知道这问题事出在哪一边>_<)
$("g[id^='trans']")
想选取开头为trans的id却都失效?
但是直接选单一id或g标签都可以成功
想请问
像getElementById这种指令有没有办法像jquey一样
可以一起抓某些开头的id
因为想一起改变其中的一个属性
但是都无法成功...
我下列详细的html档(这里面用jquery svg plugin的load功能需要将此html当放在
apache等伺服器(如xampp)下才能运作也就是标题需为127.0.0.1下;如果直接执行档案会出现load
错误..先提醒一下有意测试的大大,避免浪费您的时间)
<html>
<head>
<script type="text/javascript"
src="
http://code.jquery.com/jquery.js"></script>
<script type="text/javascript"
src="
http://keith-wood.name/js/jquery.svg.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#svgload").svg();
var svg = $('#svgload').svg('get');
$('#loadsvg').click(function() {
svg.load('red.svg',{onLoad:loadDone});
})
function loadDone(svg, error) {
svg.text(10, 20, error || 'Loaded into ' + this.id);
}
$('
#transform').click(function(){
alert($("g").attr("transform"));
alert("before="+svg.toSVG());//这里明明就可以看到
$('g[id^="trans"]').attr("transform","translate(20,5)");
//上面这个会失败?不知道为什麽?这指令没有问题在其他网页测试过
//感觉应该是load的方式不知道跑到记忆体哪里去?jquey的此语法无法成功?
//$("g").attr("transform","translate(20,5)");//这个就会成功?
alert("after="+svg.toSVG());//但是却无法取代attr?
});
});
</script>
</head>
<body>
<div id="svgload" width="200px" height="200px" >
</div>
<button id="loadsvg" type="button">loadsvg</button>
<button id="transform" type="button">transform</button>
</body>
</html>
需要load的red.svg
(用笔记本存,需另存成utf-8格式在改附档名为.svg放在上面html同目录)
<svg version="1.1" xmlns="
http://www.w3.org/2000/svg">
<g id="trans001">
<rect x="35" y="50" width="20" height="20" fill="#F3D70A" stroke-width="4"/>
<line x1="20" y1="40" x2="80" y2="40" stroke-width="5"/>
<circle cx="20" cy="60" r="10" fill="red" stroke="blue" stroke-width="5"/>
</g>
<g id="trans002">
<rect width="35" height="20" x="20" y="90" fill="blue"></rect>
</g>
</svg>
--
宁愿天空是蓝色~
也不愿心情是蓝的!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.233.4.14
※ 编辑: robinnpca 来自: 118.233.4.14 (11/05 11:40)
※ 编辑: robinnpca 来自: 118.233.4.14 (11/05 12:01)
1F:→ weiyucsie:我测试的结果,应该是opera+svg在query上的bug 11/06 16:26
2F:→ weiyucsie:11.60应该会ok 11/06 16:27
3F:→ weiyucsie:document.querySelectorAll('g[id^=trans]')有东西 11/06 16:27
4F:→ weiyucsie:主要症状是说opera下svg+包含属性的查询(就是有[]的) 11/06 16:34
5F:→ weiyucsie:好像会查不到东西... 不过到11.60应该会ok才对 11/06 16:34
6F:→ robinnpca:太厉害了!这也能测到..不知如何跟opera反应?这样才不 11/06 18:46
7F:→ robinnpca:会枯等.. 11/06 18:46
8F:→ robinnpca:忘了问.意思就是opera不是jquery相容性的问题欧! 11/06 18:47
9F:→ weiyucsie:就11.60应该会改善罗~ 11/06 19:04
10F:→ robinnpca:thanks! 11/06 19:14