[解決済み] DOMを使用して既存のSVGにSVG要素を追加する
2023-05-20 22:12:02
質問
以下のようなHTMLの構成があります。
<div id='intro'>
<svg>
//draw some svg elements
<svg>
</div>
javascriptとDOMを使って、上で定義されたSVGにいくつかの要素を追加できるようにしたいです。どのようにそれを達成するのでしょうか?私は次のように考えていました。
var svg1=document.getElementById('intro').getElementsByTagName('svg');
svg1[0].appendChild(element);//element like <line>, <circle>
私はDOMの使用や、appendChildに渡される要素の作成方法についてあまり詳しくないので、これについて私を助けてください、あるいは、この問題を解決するための他の代替手段を教えてください。どうもありがとうございました。
どのように解決するのですか?
HTML要素を作成する場合は
document.createElement
という関数を使います。SVGは名前空間を使うので、そのために
document.createElementNS
関数を使用します。
var svg = document.getElementsByTagName('svg')[0]; //Get svg element
var newElement = document.createElementNS("http://www.w3.org/2000/svg", 'path'); //Create a path in SVG's namespace
newElement.setAttribute("d","M 0 0 L 10 10"); //Set path's data
newElement.style.stroke = "#000"; //Set stroke colour
newElement.style.strokeWidth = "5px"; //Set stroke width
svg.appendChild(newElement);
このコードでは、次のようなものが生成されます。
<svg>
<path d="M 0 0 L 10 10" style="stroke: #000; stroke-width: 5px;" />
</svg>
createElement
:
https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement
createElementNS
:
https://developer.mozilla.org/en-US/docs/Web/API/Document/createElementNS
関連
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] どのDOM要素にフォーカスがあるかを調べるには?
-
[解決済み] idによる要素の削除
-
[解決済み] DOM要素が現在のビューポートで表示されているかどうかを確認するにはどうすればよいですか?
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] Angularjs - 現在の日付を表示する
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?