鑑於這個網站+ SVG動態插入foreignObject爲SVG與jQuery
<div id="svg" style="width: 300px; height: 300px">
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300">
<svg x='10' y='10' id='group'>
<rect id="rect" x='0' y='0' width='100' height='100' fill='#f0f0f0'/>
</svg>
<svg x='100' y='100' id='group2'>
<rect id="rect2" x='0' y='0' width='100' height='100' fill='#f00000'/>
<foreignobject x='0' y='0' width='100' height='100' >
<body>
<div>manual</div>
</body>
</foreignobject>
</svg>
</svg>
</div>
我想插入foreignObject到#group(最好用jQuery因爲它使操作更簡單)。我已經試過(代碼是從頭部粗略)
$("#group").append("<foreignobject x='0' y='0' width='100' height='100'><body><div>auto</div></body></foreignobject>")
無濟於事可能是因爲「身體」被剝離。我嘗試了幾種創建body元素的奇特方法,並且盡我所能 - 螢火蟲不會將已插入的foreignObject元素變灰,但仍然不可見。
所以要麼我沒有看到明顯的東西,或者有一種奇怪的方式來做到這一點。
想法?
更新與最終的解決方案 這是最短的什麼,我想出了
var foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
var body = document.createElement('body'); // you cannot create bodies with .apend("<body />") for some reason
$(foreignObject).attr("x", 0).attr("y", 0).attr("width", 100).attr("height", 100).append(body);
$(body).append("<div>real auto</div>");
$("#group").append(foreignObject);
firefox和chrome都允許不區分大小寫的svg標記 - 至少上面的代碼顯示了手動定義的異物 – durilka